WO2022037458A1 - 视频编解码中的运动信息列表构建方法、装置及设备 - Google Patents
视频编解码中的运动信息列表构建方法、装置及设备 Download PDFInfo
- Publication number
- WO2022037458A1 WO2022037458A1 PCT/CN2021/112092 CN2021112092W WO2022037458A1 WO 2022037458 A1 WO2022037458 A1 WO 2022037458A1 CN 2021112092 W CN2021112092 W CN 2021112092W WO 2022037458 A1 WO2022037458 A1 WO 2022037458A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- motion information
- block
- spatial
- information list
- adjacent
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Definitions
- the embodiments of the present application relate to the technical field of video coding and decoding, and in particular, to a method, apparatus, and device for constructing a motion information list in video coding and decoding.
- VVC Very Video Coding, Universal Video Coding
- AVS3 Audio Video Coding Standard 3, Audio Video Coding Standard 3
- the video codec usually needs to build a motion information list to derive the predicted displacement vector.
- the motion information list cannot provide an effective predicted displacement vector, which affects the video compression performance.
- the embodiments of the present application provide a method, device and device for constructing a motion information list in video coding and decoding, which can fill in the motion information adjacent to the spatial domain when the motion information contained in the candidate motion information list is insufficient, so as to achieve better results.
- the displacement vector prediction effect is improved, and the compression performance of the video is improved.
- a method for constructing a motion information list in video coding and decoding comprising:
- the spatial motion information list includes motion information of the spatial adjacent blocks of the current codec block, and the spatial adjacent blocks at least include ISC (Intra String Copy, Intra String Copy) blocks;
- the motion information in the candidate motion information list When the motion information in the candidate motion information list is insufficient, obtain at least one motion information from the spatial motion information list, and use the at least one motion information to fill the candidate motion information list;
- the candidate motion information list is used to provide candidate prediction displacement vectors for the current codec block.
- an apparatus for constructing a motion information list in video coding and decoding includes:
- a list building module configured to construct a spatial motion information list, where the spatial motion information list includes motion information of a spatial adjacent block of the current codec block, and the spatial adjacent block includes at least an ISC block;
- a list filling module configured to obtain at least one piece of motion information from the spatial motion information list when the motion information in the candidate motion information list is insufficient, and fill the candidate motion information list with the at least one piece of motion information ;
- the candidate motion information list is used to provide candidate prediction displacement vectors for the current codec block.
- a computer device includes a processor and a memory, and the memory stores at least one instruction, at least one program, a code set or an instruction set, the at least one The instructions, the at least one piece of program, the code set or the instruction set are loaded and executed by the processor to implement the above method for constructing a motion information list in video coding and decoding.
- a computer-readable storage medium where at least one instruction, at least one piece of program, code set or instruction set is stored in the computer-readable storage medium, the at least one instruction, all the The at least one piece of program, the code set or the instruction set is loaded and executed by the processor to implement the above-mentioned method for constructing a motion information list in video coding and decoding.
- an embodiment of the present application provides a computer program product or computer program, where the computer program product or computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium.
- the processor of the 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 above-mentioned method for constructing a motion information list in video coding and decoding.
- the motion information adjacent to the spatial domain is used for filling, so as to realize the content expansion of the candidate motion information list, so as to provide more and more effective displacement vectors in the candidate motion information list , in order to obtain better displacement vector prediction effect and improve video compression performance.
- FIG. 1 is a basic flow chart of a video encoding process exemplarily shown in the present application
- FIG. 2 is a schematic diagram of an inter-frame prediction mode provided by an embodiment of the present application.
- FIG. 3 is a schematic diagram of a candidate motion vector provided by an embodiment of the present application.
- FIG. 4 is a schematic diagram of an intra-block copy mode provided by an embodiment of the present application.
- FIG. 5 is a schematic diagram of an intra-frame string replication mode provided by an embodiment of the present application.
- FIG. 6 is a simplified block diagram of a communication system provided by an embodiment of the present application.
- FIG. 7 is a schematic diagram of the placement manner of a video encoder and a video decoder in a streaming transmission environment exemplarily shown in the present application;
- FIG. 8 is a flowchart of a method for constructing a motion information list in video coding and decoding provided by an embodiment of the present application
- FIG. 9 is a schematic diagram of an airspace adjacent block provided by an embodiment of the present application.
- FIG. 10 is a block diagram of an apparatus for constructing a motion information list in video coding and decoding provided by an embodiment of the present application;
- FIG. 11 is a structural block diagram of a computer device provided by an embodiment of the present application.
- FIG. 1 exemplarily shows a basic flow chart of a video encoding process.
- a video signal refers to a sequence of images comprising multiple frames.
- a frame is a representation of the spatial information of a video signal. Taking YUV mode as an example, a frame includes one luma sample matrix (Y) and two chroma sample matrices (Cb and Cr). From the point of view of the acquisition method of video signal, it can be divided into two methods: camera captured and computer generated. Due to different statistical characteristics, the corresponding compression coding methods may also be different.
- a hybrid coding framework is used to perform the following series of operations and processing on the input original video signal:
- Block Partition Structure The input image is divided into several non-overlapping processing units, and each processing unit will perform similar compression operations.
- This processing unit is called CTU (Coding Tree Unit, coding tree unit), or LCU (Large Coding Unit, largest coding unit). Further down the CTU, more finer divisions can be continued to obtain one or more basic coding units, which are called CUs (Coding Units, coding units).
- CUs Coding Units, coding units.
- Each CU is the most basic element in a coding session. Described below are various encoding methods that may be used for each CU.
- Predictive Coding Including intra-frame prediction and inter-frame prediction. After the original video signal is predicted by the selected reconstructed video signal, a residual video signal is obtained. The encoder needs to decide among many possible predictive coding modes for the current CU, select the most suitable one, and inform the decoder. Among them, intra-frame prediction means that the predicted signal comes from an area that has been coded and reconstructed in the same image. Inter-frame prediction means that the predicted signal comes from other pictures (called reference pictures) that have been encoded and different from the current picture.
- Transform & Quantization The residual video signal undergoes transformation operations such as DFT (Discrete Fourier Transform, Discrete Fourier Transform), DCT (Discrete Cosine Transform, Discrete Cosine Transform) to convert the signal to the transform domain. are called transform coefficients.
- the signal in the transform domain is further subjected to a lossy quantization operation, which loses a certain amount of information, so that the quantized signal is conducive to compressed expression.
- a lossy quantization operation which loses a certain amount of information, so that the quantized signal is conducive to compressed expression.
- the encoder also needs to select one of the transformations for the current CU and inform the decoder.
- the fineness of quantization is usually determined by the quantization parameter.
- QP Quality Parameter, quantization parameter
- Entropy Coding or Statistical Coding The quantized transform domain signal will undergo statistical compression coding according to the frequency of occurrence of each value, and finally output a binarized (0 or 1) compressed code stream. At the same time, the encoding generates other information, such as the selected mode, motion vector, etc., and entropy encoding is also required to reduce the bit rate.
- Statistical coding is a lossless coding method that can effectively reduce the code rate required to express the same signal. Common statistical coding methods include Variable Length Coding (VLC) or context-based binary arithmetic coding (Content Adaptive Binary Arithmetic Coding, CABAC).
- Loop Filtering The decoded image can be reconstructed by performing inverse quantization, inverse transformation, and prediction compensation operations (the inverse operations of 2 to 4 above) for an already encoded image. Compared with the original image, the reconstructed image has some information 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, sample adaptive offset) or ALF (Adaptive Lattice Filter, adaptive lattice filter) and other filters, can effectively Reduces the amount of distortion produced by quantization. Since these filtered reconstructed images will be used as references for subsequent encoded images to predict future signals, the above filtering operations are also referred to as in-loop filtering and filtering operations within the encoding loop.
- SAO Sample Adaptive Offset, sample adaptive offset
- ALF Adaptive Lattice Filter, adaptive lattice filter
- the decoder first performs entropy decoding to obtain various mode information and quantized transform coefficients. Each coefficient is inversely quantized and inversely transformed to obtain a residual signal.
- the prediction signal corresponding to the CU can be obtained, and after adding the two, the reconstructed signal can be obtained.
- the reconstructed value of the decoded image needs to undergo a loop filtering operation to generate the final output signal.
- a block-based hybrid coding framework is adopted. 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 realize the compression of video data.
- motion compensation is a type of prediction method commonly used in video coding. Based on the redundancy characteristics of video content in the temporal or spatial domain, motion compensation derives the prediction value of the current coding block from the coded region.
- prediction methods include: inter prediction, intra block copy prediction, intra string copy prediction, etc. In specific coding implementations, these prediction methods may be used alone or in combination.
- the displacement vector may have different names. This article will describe it in the following manner: 1) The displacement vector in the inter prediction mode is called a motion vector. MV for short); 2) The displacement vector in the IBC (Intra Block Copy, intra-frame block copy) prediction mode is called a block vector (Block Vector, BV for short); 3) ISC (Intra String Copy, intra-frame string copy) prediction mode The displacement vector in is called a string vector (String Vector, SV for short). Intra-frame string duplication is also referred to as "string prediction” or "string matching”, among others.
- MV refers to the displacement vector used in the inter prediction mode, pointing from the current image to the reference image, and its value is the coordinate offset between the current block and the reference block, wherein the current block and the reference block are in two different images.
- 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 calculated. Compared with directly encoding and transmitting the actual motion vector corresponding to the current block, encoding and transmission is beneficial to save bit overhead.
- the predicted motion vector refers to the predicted value of the motion vector of the current block obtained through the motion vector prediction technology.
- BV refers to the displacement vector used for the IBC prediction mode, and its value is the coordinate offset between the current block and the reference block, wherein both the current block and the reference block are in the current image.
- 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. Compared with directly encoding and transmitting the actual block vector corresponding to the current block, it is beneficial to save bit overhead.
- the predicted block vector refers to the predicted value of the block vector of the current block obtained through the block vector prediction technology.
- SV refers to the displacement vector used for the ISC prediction mode, and its value is the coordinate offset between the current string and the reference string, wherein both the current string and the reference string are in the current image.
- string vector prediction can be introduced. By predicting the string vector of the current string, the 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. Compared with directly encoding and transmitting the actual string vector corresponding to the current string, it is beneficial to save bit overhead.
- the predicted string vector refers to the predicted value of the string vector of the current string obtained through the string vector prediction technology.
- inter-frame prediction utilizes the correlation in the video temporal domain, and uses the pixels adjacent to the coded image to predict the pixels of the current image, so as to effectively remove the temporal redundancy of the video, which can effectively save the coding residual data.
- bits P is the current frame
- Pr is the reference frame
- B is the current block to be encoded
- Br is the reference block of B.
- the coordinates of B' and B in the image are the same, the coordinates of Br are (xr, yr), and the coordinates of B' are (x, y).
- the displacement between the current block to be coded and its reference block is called a motion vector (MV), that is:
- MV (xr-x, yr-y).
- inter-frame prediction includes two MV prediction technologies, Merge and AMVP (Advanced Motion Vector Prediction).
- Merge mode will build a MV candidate list for the current PU (Prediction Unit, prediction unit), in which there are 5 candidate MVs (and their corresponding reference images). Traverse these five candidate MVs, and select the one with the smallest rate-distortion cost as the optimal MV. If the codec builds the candidate list in the same way, the encoder only needs to transmit the index of the optimal MV in the candidate list.
- the MV prediction technology of HEVC also has a skip mode, which is a special case of the Merge mode. After the optimal MV is found in the Merge mode, if the current block is basically the same as the reference block, then there is no need to transmit residual data, only the index of the MV and a skip flag need to be transmitted.
- the MV candidate list established by the Merge mode includes both the spatial domain and the time domain.
- B Slice B frame image
- the airspace provides up to 4 candidate MVs, and its establishment is shown in part (a) of Figure 3.
- the airspace 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, and A0 do not exist, the motion information of B2 needs to be used; time domain Only one candidate MV is provided at most, and its establishment is shown in part (b) of Figure 3, which is obtained by scaling the MV of the co-located PU as follows:
- curMV td*colMV/tb
- 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
- tb represents the distance between the co-located image and the reference image.
- the AMVP mode utilizes the MV correlation of adjacent blocks in the spatial and temporal domains to build an MV candidate list for the current PU.
- Difference Motion Vector Difference
- the MV candidate list of the AMVP mode also includes two cases, the spatial domain and the time domain, the difference is that the length of the MV candidate list of the AMVP mode is only 2.
- HMVP History based Motion Vector Prediction
- H.266/VVC History based Motion Vector Prediction
- 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, coding unit).
- H.266/VVC adds HMVP to the candidate list for Merge mode, after the spatial and temporal MVPs.
- the HMVP technology stores the motion information of the previously encoded blocks in a first-in, first-out queue (First Input First Output, FIFO for short).
- the duplicate candidate motion information will be removed first, then all HMVP candidates will be moved forward, and the motion information of the current coding unit will be added at the end of the FIFO . If the motion information of the current coding unit is different from any candidate motion information in the FIFO, the latest motion information is added to the end of the FIFO.
- the HMVP list will be reset (emptied) when a new CTU (Coding Tree Unit) row is encountered.
- the HMVP table size S is set to 6, and in order to reduce the number of redundancy check operations, the following simplifications are introduced:
- IBC is an intra-frame coding tool adopted in the extension of HEVC Screen Content Coding (SCC), which significantly improves the coding efficiency of screen content.
- SCC Screen Content Coding
- IBC technology is also adopted to improve the performance of screen content encoding.
- IBC utilizes the spatial correlation of screen content and video, and uses the encoded image pixels on the current image to predict the pixels of the current block to be encoded, which can effectively save the bits required for encoding pixels.
- 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 to encode BV.
- ISC technology divides a coded block into a series of pixel strings or unmatched pixels according to a certain scan order (such as raster scan, round-trip scan, Zig-Zag scan, etc.). Similar to IBC, each string looks for a reference string of the same shape in the coded area of the current image, and derives the predicted value of the current string. By encoding the residual between the pixel value of the current string and the predicted value, instead of directly encoding the pixel value, it can effectively Save bits.
- Figure 5 shows a schematic diagram of intra-frame string replication.
- the dark gray area is the encoded area
- the 28 white pixels are string 1
- the light gray 35 pixels are string 2
- the black 1 pixel represents an unmatched pixel.
- the displacement between string 1 and its reference string is the string vector 1 in FIG. 5 ; the displacement between string 2 and its reference string is the string vector 2 in FIG. 5 .
- 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.
- SV represents the displacement of the to-be-coded string to its reference string.
- String length indicates the number of pixels contained in the string. In different implementations, there are many ways to encode the length of the string.
- 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 regions, BV and SV have high correlation, which can further improve coding efficiency 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 repetition times of these two types of coding blocks, and derives BVP (Block Vector Predictor, prediction block vector from IntraHMVP) ) and SVP (String Vector Predictor, prediction string vector). Among them, BVP is the predicted value of the block vector, and SVP is the predicted value of the string vector.
- IntraHMVP intra-frame prediction history motion information table
- BVP Block Vector Predictor, prediction block vector from IntraHMVP
- SVP String Vector Predictor
- Class based Block Vector Prediction (CBVP) is adopted in AVS3, which is similar to HMVP.
- This method first uses an HBVP (History based Block Vector Prediction) list to store historical IBCs
- HBVP History based Block Vector Prediction
- the information of the coding block in addition to recording the BV information of the historical coding block, also records the information such as the position and size of the historical coding block.
- the candidate BVs in HBVP are classified by:
- Category 0 The area of the historical coding block is greater than or equal to 64 pixels;
- Category 1 The frequency of BV is greater than or equal to 2;
- 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;
- Category 3 The coordinates of the upper left corner of the historical coding block are located above the coordinates of the upper left corner of the current block;
- Category 4 The coordinates of the upper left corner of the historical coding block are located at the upper left of the coordinates of the upper left corner of the current block;
- Category 5 The coordinates of the upper left corner of the historical coding block are located at the upper right of the coordinates of the upper left corner of the current block;
- Category 6 The coordinates of the upper left corner of the historical coding block are located at the lower left of the coordinates of the upper left corner of the current block;
- each category is arranged in the reverse order of the coding order (the closer the coding order is to the current block, the higher the ranking), and the BV corresponding to the first historical coding block is the candidate BV corresponding to this category.
- the candidate BV to CBVP list corresponding to each category is then added in the order of category 0 to category 6.
- the encoding end selects the best candidate BV in the CBVP list as the BVP, and encodes an index in the code stream, indicating the index of the category corresponding to the best candidate BV in the CBVP list.
- the decoding end decodes the BVP from the CBVP list according to the index.
- the intra prediction motion information of the current prediction block includes displacement vector information, position information, size information and repetition times, wherein the displacement vector information of the block copy intra prediction block is a block vector; the position information includes the abscissa of the upper left corner of the current prediction block, the upper left Angle ordinate; size information is the product of width and height; the repetition times of the current prediction block is initialized to 0.
- AVS3 encodes an index for each string in the ISC coding block, indicating the position of the SVP of that string in IntraHMVP. Similar to the skip mode in inter 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 the SVP.
- the string copy intra prediction motion information of the current prediction block includes displacement vector information, position information, size information and repetition times, wherein the displacement vector information of the current string is a string vector; the position information includes the abscissa of the first pixel sample of the string and The ordinate is (xi,yi); the size information is the string length of this part, that is, StrLen[i]; the number of repetitions is initialized to 0.
- the intra-frame prediction motion information includes displacement vector information, position information, size information, and the number of repetitions.
- the prediction type of the current prediction unit is block copy intra prediction or string copy intra prediction, and NumOfIntraHmvpCand is greater than 0, update the intra prediction history according to the intra prediction motion information of the current prediction block
- the displacement vector information, position information, size information and repetition times of the motion information table IntraHmvpCandidateList and IntraHmvpCandidateList[X] are recorded as intraMvCandX, posCandX, sizeCandX and cntCandX respectively; otherwise, the operations defined in this article are not performed.
- IntraHmvpCandidateList[CntIntraHmvp] is the intra prediction motion information of the current prediction unit, and CntIntraHmvp is incremented by 1.
- step c If X is less than CntIntraHmvp, go to step c); otherwise, go to step e).
- cntCur is equal to the value of cntCandX plus 1. If sizeCur is less than sizeCandX, the current sizeCur is equal to sizeCandX respectively.
- IntraHmvpCandidateList[CntIntraHmvp-1] is equal to the intra prediction motion information of the current prediction unit.
- i is from 0 to CntIntraHmvp-1, so that IntraHmvpCandidateList[i] is equal to IntraHmvpCandidateList[i+1];
- IntraHmvpCandidateList[CntIntraHmvp-1] is equal to the intra prediction motion information of the current prediction unit.
- IntraHmvpCandidateList[CntIntraHmvp] is equal to the intra prediction motion information of the current prediction unit, CntIntraHmvp plus 1.
- a candidate motion information list is constructed and a prediction block vector (BVP) or prediction string vector (SVP) is derived only by constructing an intra prediction historical motion information (IntraHMVP) table.
- BVP prediction block vector
- SVP prediction string vector
- the maximum length of IntraHMVP is 12, and the maximum length of the candidate motion information list is 7.
- the length of the IntraHMVP is insufficient or empty, the candidate motion information list cannot be filled, so that enough motion information cannot be provided for prediction of displacement vectors.
- This application proposes a method for constructing a motion information list, which is used in combination with the historical motion information list. For example, when the candidate motion information is insufficient, the method provides additional motion information for the candidate motion information list, so as to provide sufficient motion information for prediction of displacement vectors, thereby improving the video compression performance.
- Communication system 200 includes a plurality of devices that can communicate with each other via, for example, network 250 .
- the communication system 200 includes a first device 210 and a second device 220 interconnected by a network 250 .
- the first device 210 and the second device 220 perform unidirectional data transfer.
- the first device 210 may encode video data, such as a stream of video pictures captured by the first device 210, for transmission to the second device 220 over the network 250.
- the encoded video data is transmitted in one or more encoded video streams.
- the second device 220 may receive encoded video data from the network 250, decode the encoded video data to restore the video data, and display a video picture according to the restored video data.
- One-way data transfer is common in applications such as media services.
- the communication system 200 includes a third device 230 and a fourth device 240 that perform bi-directional transmission of encoded video data, which may occur, for example, during a video conference.
- each of the third device 230 and the fourth device 240 may encode video data (eg, a stream of video pictures captured by the device) for transmission to the third device 230 and the fourth device over the network 250 Another device in 240.
- Each of third device 230 and fourth device 240 may also receive encoded video data transmitted by the other of third device 230 and fourth device 240, and may decode the encoded video data to restore the video data, and a video picture can be displayed on an accessible display device according to the restored video data.
- 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 this application may not be limited thereto.
- the embodiments of the present application are applicable to a PC (Personal Computer, personal computer), a mobile phone, a tablet computer, a media player, and/or a dedicated video conference device.
- Network 250 represents any number of networks that communicate encoded video data between first device 210, second device 220, third device 230, and fourth device 240, including, for example, wired and/or wireless communication networks.
- Communication network 250 may exchange data in circuit-switched and/or packet-switched channels.
- the network may include a telecommunications network, a local area network, a wide area network, and/or the Internet.
- the architecture and topology of network 250 may be immaterial to the operations disclosed herein.
- Figure 7 shows the placement of video encoders and video decoders in a streaming environment.
- the subject matter disclosed in this application is equally applicable to other video-enabled applications, including, for example, videoconferencing, digital TV (television), CD (Compact Disc), DVD (Digital Versatile Disc), memory stick Compressed video, etc., are stored on digital media such as
- the streaming system may include a capture subsystem 313, which may include a video source 301, such as a digital camera, that creates a stream 302 of uncompressed video pictures.
- the video picture stream 302 includes samples captured by a digital camera.
- video picture stream 302 is depicted as a thick line to emphasize the high data volume of video picture stream 302 that can be processed by electronic device 320, which Electronic device 320 includes video encoder 303 coupled to video source 301 .
- 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 greater detail below.
- encoded video data 304 (or encoded video codestream 304) is depicted as a thin line to emphasize the lower amount of encoded video data 304 (or encoded video codestream) 304), which can be stored on the streaming server 305 for future use.
- One or more streaming client subsystems such as client subsystem 306 and client subsystem 308 in FIG. 7 , may access streaming server 305 to retrieve copies 307 and 309 of encoded video data 304 .
- Client subsystem 306 may include, for example, video decoder 310 in electronic device 330 .
- Video decoder 310 decodes incoming copy 307 of the encoded video data and produces output video picture stream 311 that can be rendered on display 312 (eg, a display screen) or another rendering device (not depicted).
- encoded video data 304, video data 307, and video data 309 may be encoded according to certain video encoding/compression standards.
- electronic device 320 and electronic device 330 may include other components (not shown).
- electronic device 320 may include a video decoder (not shown), and electronic device 330 may also include a video encoder (not shown).
- the video decoder is used for decoding the received encoded video data; the video encoder is used for encoding the video data.
- the technical solutions provided by 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 codec standard. This is not limited.
- the execution subject of each step may be a decoding end device or an encoding end device.
- the technical solutions provided by the embodiments of the present application may be used to construct a motion information list.
- Both the decoding device and the encoding device can be computer devices.
- the computer devices refer to electronic devices with data computing, processing and storage capabilities, such as PCs, mobile phones, tablet computers, media players, dedicated video conferencing equipment, servers, etc. .
- the encoder and decoder based on the method provided in this application may be implemented by one or more processors or one or more integrated circuits.
- the derivation of the predicted displacement vector may include the following three steps:
- a historical motion information list to record the motion information of historical prediction units (such as decoded blocks or decoded strings) in the decoding process in a first-in-first-out (First Input First Output, FIFO) manner;
- the candidate motion information list is derived from the historical motion information list in combination with other motion information;
- the historical prediction unit refers to an encoded (or decoded) image unit
- the image unit may include one or more pixels
- the image unit may be block-shaped or string-shaped.
- a historical prediction unit also called a historical block
- the historical prediction unit refers to an encoded (or decoded) image block.
- the historical prediction unit is also called the historical string, which refers to the encoded (or decoded) image string.
- the current prediction unit refers to an image unit currently encoded (or decoded), the image unit may also include one or more pixels, and the image unit may be block-shaped or string-shaped.
- the present application proposes a method for constructing a motion information list, which can provide additional motion information for the candidate motion information list when the motion information in the candidate motion information list is insufficient.
- FIG. 8 shows a flowchart of a method for constructing a motion information list in video coding and decoding provided by an embodiment of the present application.
- the method may include the following steps (801-802):
- Step 801 constructing a spatial motion information list, where the spatial motion information list includes motion information of spatial neighboring blocks of the current codec block, and the spatial neighboring blocks include at least ISC blocks.
- the spatially adjacent blocks of the current codec block refer to codec blocks that belong to the same image as the current codec block and are spatially adjacent to the current codec block.
- the so-called “proximity” here may mean that the distance to the current codec block is less than a threshold, and the threshold may be set in combination with the actual situation.
- the calculation method of the distance between two codec blocks can also be set flexibly, for example, it can be the distance between the coordinates of the upper left corner of the two codec blocks, or it can be the horizontal direction of the upper left corner of the two codec blocks.
- the distance between the coordinates may also be the distance between the center positions of the two codec blocks, or the shortest distance between the two codec blocks, etc. This is not done in this embodiment of the present application. limited.
- the coordinates of the upper left corner of the current codec block are (x0, y0)
- the coordinates of the upper left corner of another codec block are (x1, y1), if the condition
- the values of a and b can be equal or unequal.
- Spatial neighbor blocks include spatial neighbor blocks and spatial non-neighbor blocks.
- the spatially adjacent blocks of the current codec block refer to codec blocks that belong to the same image as the current codec block and are adjacent and adjacent to the current codec block in spatial position.
- the so-called "adjacent and adjacent” may refer to the existence of overlapping edges or vertices with the current codec block.
- the spatial adjacent blocks of the current codec block F may include codec blocks such as A, B, C, D, and E.
- Spatial non-adjacent blocks of the current codec block refer to codec blocks that belong to the same image as the current codec block, and are spatially adjacent to and not adjacent to the current codec block.
- the so-called “adjacent and non-adjacent” may mean that the distance to the current codec block is less than the threshold, but there is no overlapping edge or vertex with the current codec block.
- the spatial non-adjacent blocks of the current codec block F may include codec blocks such as A', B', C', D', and E'.
- the adjacent blocks in the spatial domain include ISC blocks, and the so-called “ISC blocks” refer to codec blocks that use the ISC prediction mode to perform motion vector prediction.
- the adjacent blocks in the spatial domain include at least one of the following: an ISC block that is adjacent in the spatial domain, and an ISC block that is not adjacent to the spatial domain.
- the spatially adjacent ISC blocks of the current codec block refer to the spatially adjacent blocks of the current codec block, and the spatially adjacent blocks are ISC blocks.
- the spatially non-adjacent ISC blocks of the current codec block refer to the spatially non-adjacent blocks of the current codec block and the spatially non-adjacent blocks are ISC blocks.
- the adjacent block in the spatial domain further includes an IBC block
- the so-called "IBC block” refers to a codec block that uses the IBC prediction mode to perform motion vector prediction.
- the adjacent blocks in the spatial domain include at least one of the following: IBC blocks adjacent in the spatial domain, and IBC blocks that are not adjacent in the spatial domain.
- the spatially adjacent IBC blocks of the current codec block refer to the spatially adjacent blocks of the current codec block, and the spatially adjacent blocks are IBC blocks.
- the spatially non-adjacent IBC blocks of the current codec block refer to the spatially non-adjacent blocks of the current codec block and the spatially non-adjacent blocks are IBC blocks.
- the motion information of the ISC block can include the SV of a certain codec string in the ISC block, can also include the SV of multiple codec strings in the ISC block, and can also include a certain one based on the ISC block.
- One or more SVs determined by SVs of multiple codec strings which are not limited in this embodiment of the present application.
- the motion information of the ISC block includes at least one of the following:
- the above-mentioned spatial adjacent blocks including the spatial adjacent blocks A to E and the spatial non-adjacent blocks A′ to E′ as shown in FIG. 9 , all refer to the minimum decoding unit , that is, the minimum size of a CU that is allowed to be divided (eg, 4*4).
- the minimum decoding unit that is, the minimum size of a CU that is allowed to be divided (eg, 4*4).
- the adjacent block in the airspace is an IBC block or an ISC block
- its corresponding BV or SV information refers to the BV of the entire codec block where the adjacent airspace block (small block of 4*4) is located. or SV information.
- the BV or SV information corresponding to each minimum codec unit (such as a 4*4 small block) belonging to the codec block may be stored.
- the minimum code decoding unit when storing the SV corresponding to the minimum code decoding unit, including but not limited to one of the following ways:
- the coordinates of the upper left corner of the current codec block F are (cur_x_pos, cur_y_pos), the width of the current codec block F is cu_width and the height is cu_height.
- Table 1 shows the coordinates of the upper left corner of the adjacent blocks A to E in the spatial domain of the current codec block F.
- neig_x_pos represents the abscissa of the upper left corner of the adjacent block in the airspace
- neig_y_pos represents the ordinate of the upper left corner of the adjacent block in the airspace
- the size of the adjacent blocks A to E in the airspace is 4*4.
- Table 2 shows the coordinates of the upper left corner of the non-adjacent blocks A' to E' in the spatial domain of the current codec block F.
- neig_x_pos represents the abscissa of the coordinates of the upper left corner of the non-adjacent blocks in the spatial domain
- neig_y_pos represents the ordinate of the coordinates of the upper left corner of the non-adjacent blocks in the spatial domain
- the dimensions of the non-adjacent spatial domains A′ ⁇ E′ are also 4*4.
- Step 802 In the case that the motion information in the candidate motion information list is insufficient, obtain at least one motion information from the spatial motion information list, and use the at least one motion information to fill the candidate motion information list.
- the candidate motion information list is used to provide candidate prediction displacement vectors for the current codec block.
- the current codec block is an IBC block
- the motion information in the candidate motion information list is insufficient, at least one piece of motion information is obtained from the spatial motion information list, and the at least one piece of motion information is used for the candidate motion information.
- the sports information list is populated.
- the current codec block is an ISC block
- the motion information in the candidate motion information list is insufficient, at least one motion information is obtained from the spatial motion information list, and the at least one motion information pair is used.
- the candidate motion information list is populated.
- the motion information in the candidate motion information list is insufficient, which may mean that the length of the candidate motion information list is less than the threshold value.
- the length of the candidate motion information list refers to the number of motion information included in the candidate motion information list.
- the above-mentioned threshold value is the maximum length of the candidate motion information list. For example, assuming that the maximum length of the candidate motion information list is 7, then when the length of the candidate motion information list is less than 7, an additional motion information pair is used. The candidate motion information list is populated.
- the above-mentioned threshold value is less than the maximum length of the candidate motion information list, for example, assuming that the maximum length of the candidate motion information list is 7, and the threshold value can be set to 5, then in the case where the length of the candidate motion information list is less than 5 Next, the candidate motion information list is filled with additional motion information.
- the candidate motion information list is filled by adding at least one piece of motion information obtained from the spatial motion information list to the candidate motion information list.
- the at least one piece of motion information described above is directly added to the candidate motion information list without performing duplicate checking and comparison.
- the at least one piece of motion information can be directly added to the candidate motion information list without performing duplicate checking and comparison; or, even in the case that the candidate motion information list is not empty , the above at least one piece of motion information can also be directly added to the candidate motion information list without performing duplicate checking and comparison.
- the motion information to be added is checked and compared with the existing motion information in the candidate motion information list; the candidate motion information list is updated according to the result of the duplicate check and comparison. For example, if the motion information to be added is the same as a certain existing motion information (denoted as target motion information) in the candidate motion information list, it means that there is duplication, and the computer device can delete the target motion information from the candidate motion information list after removing the target motion information. , and then add the motion information to be added to the candidate motion information list, or the motion information to be added may not be added to the candidate motion information list.
- the motion information is added to the candidate motion information list one by one, and each piece of motion information added is checked and compared with the existing motion information in the list.
- the duplication checking and comparison methods described above are only exemplary and explanatory, and the embodiments of the present application do not limit that other methods may be adopted.
- the candidate motion information list is used to provide candidate BVPs for the IBC block.
- the encoder can find the BVP index of the current block from the candidate motion information list, and encode the index into the code stream; for the decoder, it can be obtained from The index of the BVP of the current block is obtained from the code stream, and then the BVP of the current block is derived from the candidate motion information list according to the index.
- the candidate motion information list of the current block is filled by using the motion information of the spatially adjacent ISC blocks (optionally also including the spatially adjacent IBC blocks), thereby providing more and more effective motion information for the current block.
- Candidate BVP which helps to improve video compression performance.
- the candidate motion information list is used to provide candidate SVPs for the ISC block.
- the encoder can find the SVP index of the current string from the candidate motion information list, and encode the index into the code stream; for the decoder, it can be obtained from The index of the SVP of the current string is obtained from the code stream, and then the SVP of the current string is derived from the candidate motion information list according to the index.
- the candidate motion information list of the current string is filled by using the motion information of the spatially adjacent ISC blocks (optionally also including the spatially adjacent IBC blocks), thereby providing more and more effective motion information for the current string.
- Candidate SVP which helps to improve video compression performance.
- the candidate motion information list is used to provide candidate BVPs for IBC blocks and candidate SVPs for ISC strings. That is, the IBC block and the ISC string can share the same candidate motion information list, so that there is no need to maintain multiple candidate motion information lists, and the complexity of coding and decoding is reduced.
- motion information can be derived from the historical motion information list and filled into the candidate motion information list, and on the other hand, the motion information can also be derived from the spatial motion information list and filled into the candidate motion information list. middle.
- the motion information can also be derived from the spatial motion information list and filled into the candidate motion information list. middle.
- the position of the motion information derived from the spatial motion information list in the candidate motion information list is located before the position of the motion information derived from the historical motion information list in the candidate motion information list.
- the position of the motion information derived from the spatial motion information list in the candidate motion information list is located after the position of the motion information derived from the historical motion information list in the candidate motion information list.
- the motion information derived from the spatial motion information list is located at a set position in the candidate motion information list.
- the motion information derived from the spatial motion information list is filled into the at least one position.
- the spatial motion information list includes motion information of 5 adjacent blocks A, B, C, D, and E in the spatial area in FIG. 9 .
- the motion information of A, B, A, B, C, D, and E can be filled in the above 7 positions respectively.
- the motion information of A may also be filled in the above seven positions.
- the above-mentioned at least one position is filled in in sequence according to the order of the motion information in the airspace motion information list.
- the spatial motion information list includes the motion information of 5 adjacent spatial blocks A, B, C, D, and E in sequence, and the 1st, 3rd, and 4th positions in the candidate motion information list are empty, then you can set Fill the motion information of A into the first position of the candidate motion information list, fill the motion information of B into the third position of the candidate motion information list, and fill the motion information of C into the fourth position of the candidate motion information list.
- the motion information of the specified position in the airspace motion information list is filled into the above at least one position.
- the spatial motion information list includes the motion information of five adjacent spatial blocks A, B, C, D, and E in sequence, and the first, third, and fourth positions in the candidate motion information list are empty, and the spatial motion
- the motion information of the specified positions (such as the first and second positions) in the information list is filled in the above three positions, then in an example, the motion information of A can be filled in the first position of the candidate motion information list, and the motion information of B can be filled in the first position of the candidate motion information list.
- the motion information is filled in the third position of the candidate motion information list, and the motion information of A is filled in the fourth position of the candidate motion information list.
- the candidate motion information list as the CBVP list introduced above as an example, if the motion information in a certain category is insufficient (for example, the motion information of this category is not derived from the historical motion information list or the derived quantity is not enough), then if the spatial motion information is insufficient
- the information list contains the motion information of the category, and the motion information of the category can be derived from the airspace motion information list and added to the category.
- preset motion information may also be used to fill the candidate motion information list.
- the preset motion information can be pre-specified in a standard or protocol.
- the preset motion information includes a displacement vector (0,0).
- the candidate motion information list can be filled with preset motion information (eg (0,0)).
- the technical solutions provided by the embodiments of the present application realize the expansion of the content of the candidate motion information list by filling in the motion information adjacent to the spatial domain when the motion information contained in the candidate motion information list is insufficient. More and more effective displacement vectors are provided in the candidate motion information list, so as to obtain a better displacement vector prediction effect and improve the video compression performance.
- the current codec block may have multiple adjacent blocks in space, such as adjacent blocks in the left, upper, upper left, upper right, lower left, etc., in different positions, when constructing the spatial motion information list, you can follow certain
- the motion information of adjacent blocks in the spatial domain is selected in the order to be added to the spatial domain motion information list.
- the construction process of the airspace motion information list is introduced and explained through several examples.
- Example 1 Building an airspace motion information list may include the following steps:
- the spatially adjacent blocks include spatially adjacent ISC blocks, and optionally, further include spatially adjacent IBC blocks.
- the ISC block can provide available motion information (for example, the motion information of the ISC block is stored), Then it is determined that the current codec block has the motion information of the available spatially adjacent blocks; otherwise, if the current codec block does not have spatially adjacent ISC blocks, or even if there are spatially adjacent ISC blocks, the ISC block cannot provide usable information. (if the motion information of the ISC block is not stored), then it is determined that there is no available motion information of the adjacent blocks in the spatial domain for the current codec block.
- the current codec block has motion information of available spatial adjacent blocks, obtain the motion information of the available spatial adjacent blocks and add it to the spatial motion information list;
- the spatially non-adjacent blocks include at least one of a spatially non-adjacent ISC block and a spatially non-adjacent IBC block.
- the motion information of the available spatial non-adjacent blocks reference may be made to the explanation of the motion information of the available spatial adjacent blocks, which will not be repeated here.
- the current codec block has available motion information of a non-adjacent block in the spatial domain, obtain the motion information of the available non-adjacent block in the spatial domain and add it to the list of spatial domain motion information.
- the current codec block does not have available motion information of spatial neighbor blocks and spatial non-neighbor blocks, it means that additional motion information cannot be provided for the candidate motion information list from the spatial neighbor blocks.
- the first setting sequence may be A ⁇ B ⁇ C ⁇ D ⁇ E
- the second setting sequence may be A′ ⁇ B′ ⁇ C′ ⁇ D′ ⁇ E′.
- the motion information of the spatial adjacent blocks is preferentially used to fill the candidate motion information list.
- the spatial non- The motion information of adjacent blocks is used to fill the candidate motion information list, so as to ensure the filling effect of the candidate motion information list as much as possible.
- Example 2 Building an airspace motion information list may include the following steps:
- each location group includes a spatial adjacent block and a spatial non-adjacent block
- 5 position groups are included: (A, A'), (B, B'), (C, C'), (D, D'), (E, E').
- the above setting order may be ⁇ A ⁇ A', B ⁇ B', C ⁇ C', D ⁇ D', E ⁇ E' ⁇ .
- multiple position groups are traversed in the set order to select the motion information of the adjacent blocks in the spatial domain.
- the motion information of the adjacent blocks in the spatial domain is preferentially used, and the adjacent blocks in the spatial domain cannot provide usable motion.
- the motion information of non-adjacent blocks in the spatial domain is used to ensure the filling effect of the candidate motion information list as much as possible.
- Example 3 Building an airspace motion information list may include the following steps:
- the spatially non-adjacent blocks include at least one of a spatially non-adjacent ISC block and a spatially non-adjacent IBC block.
- the current codec block has motion information of available spatial non-adjacent blocks, obtain the motion information of the available spatial non-adjacent blocks and add it to the spatial motion information list;
- the spatially adjacent blocks include spatially adjacent ISC blocks, and optionally, further include spatially adjacent IBC blocks.
- the current codec block does not have available motion information of spatial non-adjacent blocks and spatial adjacent blocks, it means that additional motion information cannot be provided for the candidate motion information list from the spatial adjacent blocks.
- the first setting sequence may be A ⁇ B ⁇ C ⁇ D ⁇ E
- the second setting sequence may be A′ ⁇ B′ ⁇ C′ ⁇ D′ ⁇ E′.
- the motion information of the spatial non-adjacent blocks is preferentially used to fill the candidate motion information list, and when the spatial non-adjacent blocks cannot provide usable motion information or the provided available motion information is insufficient, the The motion information of the adjacent blocks in the spatial domain is used to fill the candidate motion information list, so as to ensure the filling effect of the candidate motion information list as much as possible.
- Example 4 Building an airspace motion information list may include the following steps:
- each location group includes a spatial adjacent block and a spatial non-adjacent block
- 5 position groups are included: (A, A'), (B, B'), (C, C'), (D, D'), (E, E').
- the above setting order may be ⁇ A' ⁇ A, B' ⁇ B, C' ⁇ C, D' ⁇ D, E' ⁇ E ⁇ .
- multiple location groups are traversed in the set order to select the motion information of the adjacent blocks in the spatial domain.
- the motion information of the non-adjacent blocks in the spatial domain is preferentially used.
- the motion information of adjacent blocks in the spatial domain is used to ensure the filling effect of the candidate motion information list as much as possible.
- Example 5 Building an airspace motion information list may include the following steps:
- the spatially adjacent blocks include spatially adjacent ISC blocks, and optionally, further include spatially adjacent IBC blocks.
- the current codec block has motion information of the available spatial adjacent blocks, obtain the motion information of the available spatial adjacent blocks and add it to the spatial motion information list.
- the current codec block does not have available motion information of the spatial neighbor blocks, it means that additional motion information cannot be provided for the candidate motion information list from the spatial neighbor blocks.
- each location includes a spatial neighbor block; for each location, it is detected whether the spatial neighbor block of the location has available motion information; if the spatial neighbor block has available motion information; If there is available motion information, the available motion information of the adjacent block in the spatial domain is acquired and added to the spatial motion information list.
- the first setting order may be A ⁇ B ⁇ C ⁇ D ⁇ E.
- the description for the first setting order here is only exemplary and explanatory, and the present application does not limit that other orders may be adopted.
- the embodiments of the present application provide various methods for constructing the airspace motion information list.
- the present application does not limit the construction of the airspace motion information list by other methods, which can be flexibly designed.
- FIG. 10 shows a block diagram of an apparatus for constructing a motion information list in video coding and decoding provided by an embodiment of the present application.
- the apparatus has the function of implementing the above method example, and the function may be implemented by hardware or by executing corresponding software by hardware.
- the apparatus may be the computer equipment described above, or may be provided on the computer equipment.
- the apparatus 1000 may include: a list building module 1010 and a list filling module 1020 .
- the list construction module 1010 is configured to construct a spatial motion information list, where the spatial motion information list includes motion information of spatial neighboring blocks of the current codec block, and the spatial neighboring blocks include at least ISC blocks.
- the list filling module 1020 is configured to acquire at least one piece of motion information from the spatial motion information list when the motion information in the candidate motion information list is insufficient, and use the at least one piece of motion information to perform an analysis on the candidate motion information list. padding; wherein the candidate motion information list is used to provide candidate prediction displacement vectors for the current codec block.
- the ISC blocks include at least one of the following: spatially adjacent ISC blocks, and spatially non-adjacent ISC blocks.
- the spatially adjacent blocks further include at least one of the following: spatially adjacent IBC blocks, and spatially non-adjacent IBC blocks.
- the candidate motion information list is used to provide candidate BVPs for IBC blocks; alternatively, the candidate motion information list is used to provide candidate SVPs for ISC strings; It is used to provide candidate BVPs for IBC blocks and candidate SVPs for ISC strings.
- the motion information of the ISC block includes at least one of the following:
- the list building module 1010 is used to:
- the spatially adjacent blocks including spatially adjacent ISC blocks
- the current codec block has motion information of the available spatial neighbor block, acquiring the motion information of the available spatial neighbor block and adding it to the spatial motion information list;
- motion information of adjacent blocks include at least one of spatially non-adjacent ISC blocks and spatially non-adjacent IBC blocks;
- the current codec block has motion information of the available spatial non-adjacent block, acquire the motion information of the available spatial non-adjacent block and add it to the spatial motion information list.
- the list building module 1010 is used to:
- each location group includes a spatially adjacent block and a spatially non-adjacent block;
- the available motion information of the spatial non-adjacent block is acquired and added to the spatial motion information list.
- the list building module 1010 is used to:
- the spatial non-adjacent blocks include at least one of spatially non-adjacent ISC blocks and spatially non-adjacent IBC blocks;
- the current codec block has the motion information of the available spatial non-adjacent block, then obtain the motion information of the available spatial non-adjacent block and add it to the spatial motion information list;
- the current codec block does not have the motion information of the available spatial non-adjacent blocks, or the constructed spatial motion information list is not full, then detect whether the current codec block has available spatial space motion information of adjacent blocks, the spatially adjacent blocks include spatially adjacent ISC blocks;
- the current codec block has motion information of the available spatial neighbor block, acquire the motion information of the available spatial neighbor block and add it to the spatial motion information list.
- the list building module 1010 is used to:
- each location group includes a spatially adjacent block and a spatially non-adjacent block;
- the available motion information of the spatially adjacent block is acquired and added to the spatial motion information list.
- the list building module 1010 is used to:
- the available motion information of the spatially adjacent block is acquired and added to the spatial motion information list.
- the position of the motion information derived from the spatial motion information list in the candidate motion information list is located in the position of the motion information derived from the historical motion information list in the candidate motion information list before the location;
- the position of the motion information derived from the spatial motion information list in the candidate motion information list is located after the position of the motion information derived from the historical motion information list in the candidate motion information list;
- the motion information derived from the spatial motion information list is located at a set position in the candidate motion information list;
- the motion information derived from the spatial motion information list is filled in the at least one position; when filling in, according to the motion information in the The sequence in the airspace motion information list is filled in the at least one position in sequence; or, the motion information of the specified position in the airspace motion information list is filled in the at least one position.
- the list filling module 1020 is further configured to use preset motion information to fill the candidate motion information list when the motion information in the candidate motion information list is insufficient.
- the list filling module 1020 is further configured to perform duplicate checking and comparison between the motion information to be added and the existing motion information in the candidate motion information list;
- the candidate motion information list is updated.
- FIG. 11 shows a structural 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 .
- the processor 151 includes one or more processing cores, and the processor 151 executes various functional applications and information processing by running software programs and modules.
- the memory 152 can be used to store a computer program, and the processor 151 is used to execute the computer program, so as to implement the above-mentioned method for constructing a motion information list in video coding and decoding.
- the communication interface 153 can be used to communicate with other devices, such as to receive audio and video data.
- the encoder/decoder 154 may be used to implement encoding and decoding functions, such as encoding and decoding audio and video data.
- the memory 152 is connected to the processor 151 through the bus 155 .
- volatile or non-volatile storage devices include but are not limited to: magnetic disks or optical disks, EEPROM (Electrically Erasable Programmable Read -Only Memory, Electrically Erasable Programmable Read-Only Memory), EPROM (Erasable Programmable Read-Only Memory, Erasable Programmable Read-Only Memory), SRAM (Static Random-Access Memory, Static Access Memory), ROM (Read-Only Memory, read-only memory), magnetic memory, flash memory, PROM (Programmable read-only memory, programmable read-only memory).
- FIG. 11 does not constitute a limitation on the computer device 150, and may include more or less components than the one shown, or combine some components, or adopt different component arrangements.
- a computer-readable storage medium stores at least one instruction, at least one piece of program, code set or instruction set, the at least one instruction, the At least one piece of the program, the code set or the instruction set, when executed by the processor, implements the above-mentioned method for constructing a motion information list in video coding and decoding.
- a computer program product or computer program comprising computer instructions stored in a computer readable storage medium.
- the processor of the 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 above-mentioned method for constructing a motion information list in video coding and decoding.
- references herein to "a plurality” means two or more.
- "And/or" which describes the association relationship of the associated objects, means that there can be three kinds of relationships, for example, A and/or B, which can mean that A exists alone, A and B exist at the same time, and B exists alone.
- the character “/” generally indicates that the associated objects are an "or" relationship.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供了一种视频编解码中的运动信息列表构建方法、装置及设备,涉及视频编解码技术领域。所述方法包括:构建空域运动信息列表,该空域运动信息列表中包括当前编解码块的空域临近块的运动信息,空域临近块至少包括ISC块;在候选运动信息列表中的运动信息不足的情况下,从空域运动信息列表中获取至少一个运动信息,采用该至少一个运动信息对候选运动信息列表进行填充。本申请通过在候选运动信息列表中包含的运动信息不足时,采用空域临近的运动信息进行填充,实现对该候选运动信息列表的内容扩充,从而在该候选运动信息列表中提供更多更有效的位移矢量,以取得更好的位移矢量预测效果,提升视频的压缩性能。
Description
本申请要求于2020年08月20日提交的申请号为202010843772.7、发明名称为“视频编解码中的运动信息列表构建方法、装置及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请实施例涉及视频编解码技术领域,特别涉及一种视频编解码中的运动信息列表构建方法、装置及设备。
在目前的视频压缩技术中,如VVC(Versatile Video Coding,通用视频编码)和AVS3(Audio Video coding Standard 3,音视频编码标准3)中,视频编解码器通常需要构建运动信息列表以导出预测位移矢量。
但是,当运动信息列表中包含的位移矢量不足时,会导致该运动信息列表无法提供有效的预测位移矢量,这会影响到视频的压缩性能。
发明内容
本申请实施例提供了一种视频编解码中的运动信息列表构建方法、装置及设备,能够在候选运动信息列表中包含的运动信息不足时,采用空域临近的运动信息进行填充,以取得更好的位移矢量预测效果,提升视频的压缩性能。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种视频编解码中的运动信息列表构建方法,所述方法包括:
构建空域运动信息列表,所述空域运动信息列表中包括当前编解码块的空域临近块的运动信息,所述空域临近块至少包括ISC(Intra String Copy,帧内串复制)块;
在候选运动信息列表中的运动信息不足的情况下,从所述空域运动信息列表中获取至少一个运动信息,采用所述至少一个运动信息对所述候选运动信息列表进行填充;
其中,所述候选运动信息列表用于为所述当前编解码块提供候选的预测位移矢量。
根据本申请实施例的一个方面,提供了一种视频编解码中的运动信息列表构建装置,所述装置包括:
列表构建模块,用于构建空域运动信息列表,所述空域运动信息列表中包括当前编解码块的空域临近块的运动信息,所述空域临近块至少包括ISC块;
列表填充模块,用于在候选运动信息列表中的运动信息不足的情况下,从所述空域运动信息列表中获取至少一个运动信息,采用所述至少一个运动信息对所述候选运动信息列表进行填充;
其中,所述候选运动信息列表用于为所述当前编解码块提供候选的预测位移矢量。
根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述视频编解码中的运动信息列表构建方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储 介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述视频编解码中的运动信息列表构建方法。
还一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述视频编解码中的运动信息列表构建方法。
本申请实施例提供的技术方案可以包括如下有益效果:
通过在候选运动信息列表中包含的运动信息不足时,采用空域临近的运动信息进行填充,实现对该候选运动信息列表的内容扩充,从而在该候选运动信息列表中提供更多更有效的位移矢量,以取得更好的位移矢量预测效果,提升视频的压缩性能。
图1是本申请示例性示出的一种视频编码过程的基本流程图;
图2是本申请一个实施例提供的帧间预测模式的示意图;
图3是本申请一个实施例提供的候选运动矢量的示意图;
图4是本申请一个实施例提供的帧内块复制模式的示意图;
图5是本申请一个实施例提供的帧内串复制模式的示意图;
图6是本申请一个实施例提供的通信***的简化框图;
图7是本申请示例性示出的视频编码器和视频解码器在流式传输环境中的放置方式的示意图;
图8是本申请一个实施例提供的视频编解码中的运动信息列表构建方法的流程图;
图9是本申请一个实施例提供的空域临近块的示意图;
图10是本申请一个实施例提供的视频编解码中的运动信息列表构建装置的框图;
图11是本申请一个实施例提供的计算机设备的结构框图。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行介绍说明之前,首先结合图1对视频编码技术进行简单介绍。图1示例性示出了一种视频编码过程的基本流程图。
视频信号是指包括多个帧的图像序列。帧(frame)是视频信号空间信息的表示。以YUV模式为例,一个帧包括一个亮度样本矩阵(Y)和两个色度样本矩阵(Cb和Cr)。从视频信号的获取方式来看,可以分为摄像机拍摄到的以及计算机生成的两种方式。由于统计特性的不同,其对应的压缩编码方式也可能有所区别。
在一些主流的视频编码技术中,如H.265/HEVC(High Efficient Video Coding,高效率视频压缩编码)、H.266/VVC(Versatile Video Coding,通用视频编码)标准、AVS(Audio Video coding Standard,音视频编码标准)(如AVS3)中,采用了混合编码框架,对输入的原始视频信号进行如下一系列的操作和处理:
1、块划分结构(Block Partition Structure):输入图像划分成若干个不重叠的处理单元,每个处理单元将进行类似的压缩操作。这个处理单元被称作CTU(Coding Tree Unit,编码树 单元),或者LCU(Large Coding Unit,最大编码单元)。CTU再往下,可以继续进行更加精细的划分,得到一个或多个基本编码的单元,称之为CU(Coding Unit,编码单元)。每个CU是一个编码环节中最基本的元素。以下描述的是对每一个CU可能采用的各种编码方式。
2、预测编码(Predictive Coding):包括了帧内预测和帧间预测等方式,原始视频信号经过选定的已重建视频信号的预测后,得到残差视频信号。编码端需要为当前CU决定在众多可能的预测编码模式中,选择最适合的一种,并告知解码端。其中,帧内预测是指预测的信号来自于同一图像内已经编码重建过的区域。帧间预测是指预测的信号来自已经编码过的,不同于当前图像的其他图像(称之为参考图像)。
3、变换编码及量化(Transform & Quantization):残差视频信号经过DFT(Discrete Fourier Transform,离散傅里叶变换)、DCT(Discrete Cosine Transform,离散余弦变换)等变换操作,将信号转换到变换域中,称之为变换系数。在变换域中的信号,进一步进行有损的量化操作,丢失掉一定的信息,使得量化后的信号有利于压缩表达。在一些视频编码标准中,可能有多于一种变换方式可以选择,因此,编码端也需要为当前CU选择其中的一种变换,并告知解码端。量化的精细程度通常由量化参数来决定。QP(Quantization Parameter,量化参数)取值较大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,QP取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。
4、熵编码(Entropy Coding)或统计编码:量化后的变换域信号,将根据各个值出现的频率,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。同时,编码产生其他信息,例如选择的模式、运动矢量等,也需要进行熵编码以降低码率。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常见的统计编码方式有变长编码(Variable Length Coding,简称VLC)或者基于上下文的二值化算术编码(Content Adaptive Binary Arithmetic Coding,简称CABAC)。
5、环路滤波(Loop Filtering):已经编码过的图像,经过反量化、反变换及预测补偿的操作(上述2~4的反向操作),可获得重建的解码图像。重建图像与原始图像相比,由于存在量化的影响,部分信息与原始图像有所不同,产生失真(distortion)。对重建图像进行滤波操作,例如去块效应滤波(deblocking),SAO(Sample Adaptive Offset,样本自适应偏移量)或者ALF(Adaptive Lattice Filter,自适应格型滤波器)等滤波器,可以有效的降低量化所产生的失真程度。由于这些经过滤波后的重建图像,将作为后续编码图像的参考,用于对将来的信号进行预测,所以上述的滤波操作也被称为环路滤波,及在编码环路内的滤波操作。
根据上述编码过程可以看出,在解码端,对于每一个CU,解码器获得压缩码流后,先进行熵解码,获得各种模式信息及量化后的变换系数。各个系数经过反量化及反变换,得到残差信号。另一方面,根据已知的编码模式信息,可获得该CU对应的预测信号,两者相加之后,即可得到重建信号。最后,解码图像的重建值,需要经过环路滤波的操作,产生最终的输出信号。
一些主流的视频编码标准中,如HEVC、VVC、AVS3等标准中,均采用基于块的混合编码框架。它们将原始的视频数据分成一系列的编码块,结合预测、变换和熵编码等视频编码方法,实现视频数据的压缩。其中,运动补偿是视频编码常用的一类预测方法,运动补偿 基于视频内容在时域或空域的冗余特性,从已编码的区域导出当前编码块的预测值。这类预测方法包括:帧间预测、帧内块复制预测、帧内串复制预测等,在具体的编码实现中,可能单独或组合使用这些预测方法。对于使用了这些预测方法的编码块,通常需要在码流显式或隐式地编码一个或多个二维的位移矢量,指示当前块(或当前块的同位块)相对它的一个或多个参考块的位移。
需要注意的是,在不同的预测模式下及不同的实现,位移矢量可能有不同的名称,本文统一按照以下方式进行描述:1)帧间预测模式中的位移矢量称为运动矢量(Motion Vector,简称MV);2)IBC(Intra Block Copy,帧内块复制)预测模式中的位移矢量称为块矢量(Block Vector,简称BV);3)ISC(Intra String Copy,帧内串复制)预测模式中的位移矢量称为串矢量(String Vector,简称SV)。帧内串复制也称作“串预测”或“串匹配”等。
MV是指用于帧间预测模式的位移矢量,由当前图像指向参考图像,其值为当前块和参考块之间的坐标偏移量,其中,当前块与参考块在两个不同图像中。在帧间预测模式中,可以引入运动矢量预测,通过对当前块的运动矢量进行预测,得到当前块对应的预测运动矢量,对当前块对应的预测运动矢量与实际运动矢量之间的差值进行编码传输,相较于直接对当前块对应的实际运动矢量进行编码传输,有利于节省比特开销。在本申请实施例中,预测运动矢量是指通过运动矢量预测技术,得到的当前块的运动矢量的预测值。
BV是指用于IBC预测模式的位移矢量,其值为当前块和参考块之间的坐标偏移量,其中,当前块与参考块均在当前图像中。在IBC预测模式中,可以引入块矢量预测,通过对当前块的块矢量进行预测,得到当前块对应的预测块矢量,对当前块对应的预测块矢量与实际块矢量之间的差值进行编码传输,相较于直接对当前块对应的实际块矢量进行编码传输,有利于节省比特开销。在本申请实施例中,预测块矢量是指通过块矢量预测技术,得到的当前块的块矢量的预测值。
SV是指用于ISC预测模式的位移矢量,其值为当前串和参考串之间的坐标偏移量,其中,当前串与参考串均在当前图像中。在ISC预测模式中,可以引入串矢量预测,通过对当前串的串矢量进行预测,得到当前串对应的预测串矢量,对当前串对应的预测串矢量与实际串矢量之间的差值进行编码传输,相较于直接对当前串对应的实际串矢量进行编码传输,有利于节省比特开销。在本申请实施例中,预测串矢量是指通过串矢量预测技术,得到的当前串的串矢量的预测值。
下面对几种不同的预测模式进行介绍:
一、帧间预测模式
如图2所示,帧间预测利用视频时间域的相关性,使用邻近已编码图像的像素预测当前图像的像素,以达到有效去除视频时域冗余的目的,能够有效节省编码残差数据的比特。其中,P为当前帧,Pr为参考帧,B为当前待编码块,Br是B的参考块。B’与B在图像中的坐标位置相同,Br坐标为(xr,yr),B’坐标为(x,y)。当前待编码块与其参考块之间的位移,称为运动矢量(MV),即:
MV=(xr-x,yr-y)。
考虑到时域或空域邻近块具有较强的相关性,可以采用MV预测技术进一步减少编码MV所需要的比特。在H.265/HEVC中,帧间预测包含Merge和AMVP(Advanced Motion Vector Prediction,高级运动向量预测)两种MV预测技术。
Merge模式会为当前PU(Prediction Unit,预测单元)建立一个MV候选列表,其中存在5个候选MV(及其对应的参考图像)。遍历这5个候选MV,选取率失真代价最小的作为最优MV。若编解码器依照相同的方式建立候选列表,则编码器只需要传输最优MV在候选列表中的索引即可。需要注意的是,HEVC的MV预测技术还有一种skip模式,是Merge模式的一种特例。在Merge模式找到最优MV后,如果当前块和参考块基本一样,那么不需要传输残差数据,只需要传送MV的索引和一个skip flag。
Merge模式建立的MV候选列表中包含了空域和时域的两种情形,对于B Slice(B帧图像),还包含组合列表的方式。其中,空域最多提供4个候选MV,它的建立如图3中的(a)部分所示。空域列表按照A1→B1→B0→A0→B2的顺序建立,其中B2为替补,即当A1,B1,B0,A0中有一个或多个不存在时,则需要使用B2的运动信息;时域最多只提供1个候选MV,它的建立如图3中的(b)部分所示,由同位PU的MV按下式伸缩得到:
curMV=td*colMV/tb;
其中,curMV表示当前PU的MV,colMV表示同位PU的MV,td表示当前图像与参考图像之间的距离,tb表示同位图像与参考图像之间的距离。若同位块上D0位置PU不可用,则用D1位置的同位PU进行替换。对于B Slice中的PU,由于存在两个MV,其MV候选列表也需要提供两个MVP(Motion Vector Predictor,预测运动矢量)。HEVC通过将MV候选列表中的前4个候选MV进行两两组合,产生了用于B Slice的组合列表。
类似的,AMVP模式利用空域和时域邻近块的MV相关性,为当前PU建立MV候选列表。与Merge模式不同,AMVP模式的MV候选列表中选择最优的预测MV,与当前待编码块通过运动搜索得到的最优MV进行差分编码,即编码MVD=MV-MVP,其中MVD为运动矢量残差(Motion Vector Difference);解码端通过建立相同的列表,仅需要MVD与MVP在该列表中的序号即可计算当前解码块的MV。AMVP模式的MV候选列表也包含空域和时域两种情形,不同的是AMVP模式的MV候选列表长度仅为2。
HMVP(History based Motion Vector Prediction,基于历史的运动矢量预测)是H.266/VVC中新采纳的一种MV预测技术。HMVP是基于历史信息的运动矢量预测方法。历史编码块的运动信息被存储在HMVP列表中,并且用作当前CU(Coding Unit,编码单元)的MVP。H.266/VVC将HMVP添加至Merge模式的候选列表中,其顺序在空域和时域MVP之后。HMVP技术以先进先出的队列(First Input First Output,简称FIFO)存储先前编码块的运动信息。如果已存储的候选运动信息与刚刚编码完成的运动信息相同,这个重复的候选运动信息首先会被移除,然后将所有HMVP候选向前移动,并在FIFO的尾部会加入当前编码单元的运动信息。如果当前编码单元的运动信息与FIFO中任意候选的运动信息均不相同,则将最新的运动信息加到FIFO末尾。在向HMVP列表添加新的运动信息时,如果列表已达到最大长度,就去掉FIFO中第一个候选,再将最新的运动信息加到FIFO末尾。在遇到新的CTU(Coding Tree Unit,编码树单元)行时HMVP列表将重置(清空)。在H.266/VVC中,HMVP表大小S设置为6,为了减少冗余检查操作的数量,引入了以下简化:
1.将用于Merge列表生成的HMVP候选的数量设置为(N<=4)?M:(8-N),其中,N表示Merge列表中现有候选的数量,M表示Merge列表中可用的HMVP候选的数量。
2.一旦可用Merge列表的长度达到最大允许的长度减1,则HMVP的合并候选者列表构建过程终止。
二、IBC预测模式
IBC是HEVC屏幕内容编码(Screen Content Coding,简称SCC)扩展中采纳的一种帧内编码工具,它显著的提升了屏幕内容的编码效率。在AVS3和VVC中,也采纳了IBC技术以提升屏幕内容编码的性能。IBC利用屏幕内容视频在空间的相关性,使用当前图像上已编码图像像素预测当前待编码块的像素,能够有效节省编码像素所需的比特。如图4所示,在IBC中当前块与其参考块之间的位移,称为BV(块矢量)。H.266/VVC采用了类似于帧间预测的BV预测技术进一步节省编码BV所需的比特。
三、ISC预测模式
ISC技术按照某种扫描顺序(如光栅扫描、往返扫描和Zig-Zag扫描等)将一个编码块分成一系列像素串或未匹配像素。类似于IBC,每个串在当前图像已编码区域中寻找相同形状的参考串,导出当前串的预测值,通过编码当前串像素值与预测值之间残差,代替直接编码像素值,能够有效节省比特。图5给出了帧内串复制的示意图,深灰色的区域为已编码区域,白色的28个像素为串1,浅灰色的35个像素为串2,黑色的1个像素表示未匹配像素。串1与其参考串之间的位移,即为图5中的串矢量1;串2与其参考串之间的位移,即为图5中的串矢量2。
帧内串复制技术需要编码当前编码块中各个串对应的SV、串长度以及是否有匹配串的标志等。其中,SV表示待编码串到其参考串的位移。串长度表示该串所包含的像素数量。在不同的实现方式中,串长度的编码有多种方式,以下给出几种示例(部分示例可能组合使用):1)直接在码流中编码串的长度;2)在码流中编码处理该串后续的待处理像素数量,解码端则根据当前块的大小N,已处理的像素数量N1,解码得到的待处理像素数量N2,计算得到当前串的长度,L=N-N1-N2;3)在码流中编码一个标志指示该串是否为最后一个串,如果是最后一个串,则根据当前块的大小N,已处理的像素数量N1,计算得到当前串的长度L=N-N1。如果一个像素在可参考的区域中没有找到对应的参考,将直接对未匹配像素的像素值进行编码。
四、AVS3中的帧内预测运动矢量预测
IBC和ISC是AVS3中两种屏幕内容编码工具,他们均以当前图像为参考,通过运动补偿导出编码单元的预测值。考虑到IBC与ISC具有相似的参考区域,BV和SV具有较高的相关性,可通过允许两者之间的预测进一步提高编码效率。AVS3使用一个类似于HMVP的帧内预测历史运动信息表(IntraHMVP)记录这两类编码块的位移矢量信息、位置信息、尺寸信息和重复次数,并由IntraHMVP导出BVP(Block Vector Predictor,预测块矢量)和SVP(String Vector Predictor,预测串矢量)。其中,BVP即为块矢量的预测值,SVP即为串矢量的预测值。为了支持并行编码,如果当前最大编码单元是片中当前行的第一个最大编码单元,帧内预测历史运动信息表中CntIntraHmvp的值初始化为0。
1.预测块矢量的导出
AVS3中采纳了基于类别的块矢量预测(Class based Block Vector Prediction,简称CBVP),类似于HMVP,该方法首先使用一个HBVP(History based Block Vector Prediction,基于历史的块矢量预测)列表存储历史的IBC编码块的信息,除了记录历史编码块的BV信息以外,还记录了历史编码块的位置、大小等信息。对于当前编码块,按以下条件对HBVP中的候选BV进行分类:
类别0:历史编码块的面积大于或等于64像素;
类别1:BV的频率大于或等于2;
类别2:历史编码块左上角的坐标位于当前块左上角坐标的左方;
类别3:历史编码块左上角的坐标位于当前块左上角坐标的上方;
类别4:历史编码块左上角的坐标位于当前块左上角坐标的左上方;
类别5:历史编码块左上角的坐标位于当前块左上角坐标的右上方;
类别6:历史编码块左上角的坐标位于当前块左上角坐标的左下方;
其中,每个类别中的实例按编码顺序的逆序排列(编码顺序距离当前块越近,排序越靠前),第一个历史编码块对应的BV为该类对应的候选BV。然后按类别0到类别6的顺序添加每个类别对应的候选BV至CBVP列表。在向CBVP列表中添加新的BV时,需要检查CBVP列表中是否已存在重复的BV。仅当不存在重复的BV时,才将该BV添加至CBVP列表中。编码端在CBVP列表中选择最佳的候选BV作为BVP,并在码流中编码一个索引,表示最佳的候选BV所对应类别在CBVP列表中的索引。解码端根据该索引从CBVP列表中解码得到BVP。
完成当前预测单元的解码后,如果当前预测单元的预测类型为块复制帧内预测(即IBC),当NumOfIntraHmvpCand大于0时,根据当前预测块的块复制帧内预测运动信息,按下文介绍的方式更新IntraHMVP。当前预测块的帧内预测运动信息包括位移矢量信息、位置信息、尺寸信息和重复次数,其中块复制帧内预测块的位移矢量信息为块矢量;位置信息包括当前预测块左上角横坐标,左上角纵坐标;尺寸信息为宽度与高度的乘积;当前预测块的重复次数初始化为0。
2.预测串矢量的导出
AVS3为ISC编码块中的每个串编码一个索引,指示该串的SVP在IntraHMVP中的位置。类似于帧间预测中的skip模式,当前串的SV等于SVP,无需编码SV与SVP之间的残差。
完成当前预测单元的解码后,如果当前预测单元的预测类型为串复制帧内预测(即ISC),当NumOfIntraHmvpCand大于0时,根据当前预测块的串复制帧内预测运动信息,按下文介绍的方式更新IntraHMVP。当前预测块的串复制帧内预测运动信息包括位移矢量信息、位置信息、尺寸信息和重复次数,其中当前串的位移矢量信息为串矢量;位置信息包括该串第一个像素样本的横坐标和纵坐标,即(xi,yi);尺寸信息为该部分的串长度,即StrLen[i];重复次数初始化为0。
3.帧内预测历史运动信息表更新
帧内预测运动信息包括位移矢量信息、位置信息、尺寸信息和重复次数。完成当前预测单元的解码后,如果当前预测单元的预测类型为块复制帧内预测或串复制帧内预测,且NumOfIntraHmvpCand大于0时,根据当前预测块的帧内预测运动信息,更新帧内预测历史运动信息表IntraHmvpCandidateList,IntraHmvpCandidateList[X]的位移矢量信息、位置信息、尺寸信息和重复次数分别记为intraMvCandX、posCandX、sizeCandX和cntCandX;否则,不执行本条定义的操作。
a)将X初始化为0,将cntCur初始化为0。
b)如果CntIntraHmvp等于0,则IntraHmvpCandidateList[CntIntraHmvp]为当前预测单元的帧内预测运动信息,CntIntraHmvp加1。
c)否则,根据intraMvCur和intraMvCandX是否相等判断当前预测块的帧内预测运动信息和IntraHmvpCandidateList[X]是否相同:
1)如果intraMvCur和intraMvCandX相同,执行步骤d),否则,X加1。
2)如果X小于CntIntraHmvp,执行步骤c);否则,执行步骤e)。
d)cntCur等于cntCandX的值加1。如果sizeCur小于sizeCandX,则当前sizeCur分别等于sizeCandX。
e)如果X小于CntIntraHmvp,则:
1)i从X到CntIntraHmvp-1,令IntraHmvpCandidateList[i]等于IntraHmvpCandidateList[i+1];
2)IntraHmvpCandidateList[CntIntraHmvp-1]等于当前预测单元的帧内预测运动信息。
f)否则,如果X等于CntIntraHmvp且CntIntraHmvp等于NumOfIntraHmvpCand,则:
1)i从0到CntIntraHmvp-1,令IntraHmvpCandidateList[i]等于IntraHmvpCandidateList[i+1];
2)IntraHmvpCandidateList[CntIntraHmvp-1]等于当前预测单元的帧内预测运动信息。
g)否则,如果X等于CntIntraHmvp且CntIntraHmvp小于NumOfIntraHmvpCand,则IntraHmvpCandidateList[CntIntraHmvp]等于当前预测单元的帧内预测运动信息,CntIntraHmvp加1。
在目前的AVS3标准中,在进行位移矢量预测时,仅通过构建帧内预测历史运动信息(IntraHMVP)表来构建候选运动信息列表并导出预测块矢量(BVP)或预测串矢量(SVP)。IntraHMVP的长度最大为12,候选运动信息列表的最大长度为7。当IntraHMVP的长度不足或为空时,也会导致候选运动信息列表无法填满,从而导致无法提供足够多的运动信息用于位移矢量的预测。
本申请提出了一种运动信息列表的构建方法,与历史运动信息列表结合使用。例如,当候选运动信息不足时,该方法为候选运动信息列表提供额外的运动信息,以提供充足的运动信息用于位移矢量的预测,从而提升视频的压缩性能。
如图6所示,其示出了本申请一个实施例提供的通信***的简化框图。通信***200包括多个设备,所述设备可通过例如网络250彼此通信。举例来说,通信***200包括通过网络250互连的第一设备210和第二设备220。在图6的实施例中,第一设备210和第二设备220执行单向数据传输。举例来说,第一设备210可对视频数据例如由第一设备210采集的视频图片流进行编码以通过网络250传输到第二设备220。已编码的视频数据以一个或多个已编码视频码流形式传输。第二设备220可从网络250接收已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。单向数据传输在媒体服务等应用中是较常见的。
在另一实施例中,通信***200包括执行已编码视频数据的双向传输的第三设备230和第四设备240,所述双向传输可例如在视频会议期间发生。对于双向数据传输,第三设备230和第四设备240中的每个设备可对视频数据(例如由设备采集的视频图片流)进行编码,以通过网络250传输到第三设备230和第四设备240中的另一设备。第三设备230和第四设备240中的每个设备还可接收由第三设备230和第四设备240中的另一设备传输的已编码视频数据,且可对所述已编码视频数据进行解码以恢复视频数据,且可根据恢复的视频数据在可 访问的显示装置上显示视频图片。
在图6的实施例中,第一设备210、第二设备220、第三设备230和第四设备240可为服务器、个人计算机和智能电话等计算机设备,但本申请公开的原理可不限于此。本申请实施例适用于PC(Personal Computer,个人计算机)、手机、平板电脑、媒体播放器和/或专用视频会议设备。网络250表示在第一设备210、第二设备220、第三设备230和第四设备240之间传送已编码视频数据的任何数目的网络,包括例如有线连线的和/或无线通信网络。通信网络250可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本申请的目的,除非在下文中有所解释,否则网络250的架构和拓扑对于本申请公开的操作来说可能是无关紧要的。
作为实施例,图7示出视频编码器和视频解码器在流式传输环境中的放置方式。本申请所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV(电视)、在包括CD(Compact Disc,光盘)、DVD(Digital Versatile Disc,数字通用光盘)、存储棒等的数字介质上存储压缩视频等等。
流式传输***可包括采集子***313,所述采集子***可包括数码相机等视频源301,所述视频源创建未压缩的视频图片流302。在实施例中,视频图片流302包括由数码相机拍摄的样本。相较于已编码的视频数据304(或已编码的视频码流),视频图片流302被描绘为粗线以强调高数据量的视频图片流,视频图片流302可由电子装置320处理,所述电子装置320包括耦接到视频源301的视频编码器303。视频编码器303可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于视频图片流302,已编码的视频数据304(或已编码的视频码流304)被描绘为细线以强调较低数据量的已编码的视频数据304(或已编码的视频码流304),其可存储在流式传输服务器305上以供将来使用。一个或多个流式传输客户端子***,例如图7中的客户端子***306和客户端子***308,可访问流式传输服务器305以检索已编码的视频数据304的副本307和副本309。客户端子***306可包括例如电子装置330中的视频解码器310。视频解码器310对已编码的视频数据的传入副本307进行解码,且产生可在显示器312(例如显示屏)或另一呈现装置(未描绘)上呈现的输出视频图片流311。在一些流式传输***中,可根据某些视频编码/压缩标准对已编码的视频数据304、视频数据307和视频数据309(例如视频码流)进行编码。
应注意,电子装置320和电子装置330可包括其它组件(未示出)。举例来说,电子装置320可包括视频解码器(未示出),且电子装置330还可包括视频编码器(未示出)。其中,视频解码器用于对接收到的已编码视频数据进行解码;视频编码器用于对视频数据进行编码。
需要说明的一点是,本申请实施例提供的技术方案可以应用于H.266/VVC标准、H.265/HEVC标准、AVS(如AVS3)或者下一代视频编解码标准中,本申请实施例对此不作限定。
还需要说明的一点是,本申请实施例提供的方法,各步骤的执行主体可以是解码端设备,也可以是编码端设备。在视频解码和视频编码的过程中,都可以采用本申请实施例提供的技术方案,来构建运动信息列表。解码端设备和编码端设备均可以是计算机设备,该计算机设备是指具备数据计算、处理和存储能力的电子设备,如PC、手机、平板电脑、媒体播放器、专用视频会议设备、服务器等等。
另外,本申请所提供的方法可以单独使用或以任意顺序与其他方法合并使用。基于本申 请所提供方法的编码器和解码器,可以由1个或多个处理器或是1个或多个集成电路来实现。
在示例性实施例中,以解码端为例,预测位移矢量的导出可以包括以下3个步骤:
1、使用一个历史运动信息列表以先入先出(First Input First Output,简称FIFO)的方式记录解码过程中历史预测单元(如已解码块或已解码串)的运动信息;
2、在对当前预测单元(如当前块或当前串)的位移矢量进行解码时,由历史运动信息列表结合其他运动信息,导出候选运动信息列表;
3、从码流中获取当前预测单元的预测位移矢量在候选运动信息列表中的位置(或称为索引),导出当前预测单元的预测位移矢量。
在本申请实施例中,历史预测单元是指已编码(或已解码)的图像单元,该图像单元可以包括一个或者多个像素,该图像单元可以是块状也可以是串状。对于IBC预测模式来说,历史预测单元也称为历史块,是指已编码(或已解码)的图像块。对于ISC预测模式来说,历史预测单元也称为历史串,是指已编码(或已解码)的图像串。
当前预测单元是指当前编码(或解码)的图像单元,该图像单元同样可以包括一个或者多个像素,该图像单元可以是块状也可以是串状。
本申请提出了一种运动信息列表的构建方法,当候选运动信息列表中的运动信息不足时,该方法能够为候选运动信息列表提供额外的运动信息。下面,通过几个实施例对本申请技术方案进行介绍说明。
请参考图8,其示出了本申请一个实施例提供的视频编解码中的运动信息列表构建方法的流程图。为了便于说明,仅以各步骤执行主体为计算机设备进行介绍说明。该方法可以包括如下几个步骤(801~802):
步骤801,构建空域运动信息列表,该空域运动信息列表中包括当前编解码块的空域临近块的运动信息,空域临近块至少包括ISC块。
在本申请实施例中,当前编解码块的空域临近块是指与当前编解码块属于同一图像,且空间位置上与当前编解码块临近的编解码块。这里所谓的“临近”可以是与当前编解码块之间的距离小于阈值,该阈值可以结合实际情况进行设定。另外,两个编解码块之间的距离的计算方式,也可以灵活设定,例如可以是两个编解码块的左上角坐标之间的距离,也可以是两个编解码块的左上角横坐标(或纵坐标)之间的距离,还可以是两个编解码块的中心位置之间的距离,还可以是两个编解码块之间的最短距离等等,本申请实施例对此不作限定。在一个示例中,假设当前编解码块的左上角坐标为(x0,y0),另一编解码块的左上角坐标为(x1,y1),如果满足条件|x0-x1|<a或|y0-y1|<b,则确定该另一编解码块属于当前编解码块的空域临近块。其中,a和b的值可以相等,也可以不相等。示例性地,a=b=8。
空域临近块包括空域相邻块和空域非相邻块。其中,当前编解码块的空域相邻块是指与当前编解码块属于同一图像,且空间位置上与当前编解码块临近且相邻的编解码块。所谓“临近且相邻”可以是指与当前编解码块存在重合的边或者顶点。例如,如图9所示,当前编解码块F的空域相邻块可以包括A、B、C、D、E等编解码块。当前编解码块的空域非相邻块是指与当前编解码块属于同一图像,且空间位置上与当前编解码块临近且非相邻的编解码块。所谓“临近且非相邻”可以是指与当前编解码块之间的距离小于阈值,但与当前编解码块不存 在重合的边或者顶点。例如,如图9所示,当前编解码块F的空域非相邻块可以包括A′、B′、C′、D′、E′等编解码块。
在本申请实施例中,空域临近块包括ISC块,所谓“ISC块”是指采用ISC预测模式进行运动矢量预测的编解码块。可选地,空域临近块(即上述ISC块)包括以下至少一种:空域相邻的ISC块、空域非相邻的ISC块。其中,当前编解码块的空域相邻的ISC块,是指当前编解码块的空域相邻块且该空域相邻块为ISC块。当前编解码块的空域非相邻的ISC块,是指当前编解码块的空域非相邻块且该空域非相邻块为ISC块。
可选地,空域临近块还包括IBC块,所谓“IBC块”是指采用IBC预测模式进行运动矢量预测的编解码块。可选地,空域临近块(即上述IBC块)包括以下至少一种:空域相邻的IBC块、空域非相邻的IBC块。其中,当前编解码块的空域相邻的IBC块,是指当前编解码块的空域相邻块且该空域相邻块为IBC块。当前编解码块的空域非相邻的IBC块,是指当前编解码块的空域非相邻块且该空域非相邻块为IBC块。
可选地,在空域临近块包括ISC块的情况下,由于一个ISC块可以包括一个或者多个编解码串(或称为“ISC串”或者“串”等,但本领域技术人员可以理解其含义),因此该ISC块的运动信息可以包括该ISC块中某一个编解码串的SV,也可以包括该ISC块中多个编解码串的SV,还可以包括基于该ISC块中的某一个/多个编解码串的SV确定出的一个或多个SV,本申请实施例对此不作限定。
示例性地,在空域临近块包括ISC块的情况下,该ISC块的运动信息包括以下至少一项:
1、ISC块中按扫描顺序的第一个编解码串的SV;
2、ISC块中按扫描顺序的最后一个编解码串的SV;
3、ISC块中按扫描顺序的第一个编解码串的SV和最后一个编解码串的SV的均值;
4、ISC块中按扫描顺序的第一个编解码串的SV和最后一个编解码串的SV的加权均值;
5、ISC块中多个编解码串的SV。
当然,上述列出的ISC块的运动信息仅是示例性和解释性的,本申请实施例并不限定还可以有其他实现方式。
在示例性实施例中,上文提及的空域临近块,包括如图9示出的空域相邻块A~E和空域非相邻块A′~E′,均是指最小编解码单元,也即允许划分的CU的最小尺寸(如4*4)。对于任意一个空域临近块,如果该空域临近块是IBC块或者ISC块,它所对应的BV或者SV信息,是指该空域临近块(4*4的小块)所在的整个编解码块的BV或者SV信息。在存储某一编解码块的BV或者SV信息时,可以将属于该编解码块的每一个最小编解码单元(如4*4的小块)对应的BV或者SV信息都存储上。
可选地,在存储最小编解码单元对应的SV时,包括但不限于以下方式之一:
1、存储编解码块中的第一个编解码串的SV;
2、存储编解码块中的最后一个编解码串的SV;
3、存储编解码块中的第一个编解码串的SV和最后一个编解码串的SV;
4、对于空域相邻块,存储编解码块中的第一个编解码串的SV和最后一个编解码串的SV;对于空域非相邻块,存储编解码块中的第一个编解码串的SV或最后一个编解码串的SV。
当然,上述列出的存储最小编解码单元对应的SV的方式仅是示例性和解释性的,本申请实施例并不限定还可以有其他实现方式。
结合图9,假设当前编解码块F的左上角坐标为(cur_x_pos,cur_y_pos),当前编解码块F的宽为cu_width且高为cu_height。下述表1示出了当前编解码块F的空域相邻块A~E的左上角坐标。在表1中,neig_x_pos表示空域相邻块的左上角坐标的横坐标,neig_y_pos表示空域相邻块的左上角坐标的纵坐标,且空域相邻块A~E的尺寸为4*4。
表1
空域相邻块位置 | neig_x_pos | neig_y_pos |
左(A) | cur_x_pos-4 | cur_y_pos+cu_height/2 |
上(B) | cur_x_pos+cu_width/2 | cur_y_pos-4 |
左上(C) | cur_x_pos-4 | cur_y_pos-4 |
右上(D) | cur_x_pos+cu_width | cur_y_pos-4 |
左下(E) | cur_x_pos-4 | cur_y_pos+cu_height |
下述表2示出了当前编解码块F的空域非相邻块A′~E′的左上角坐标。在表2中,neig_x_pos表示空域非相邻块的左上角坐标的横坐标,neig_y_pos表示空域非相邻块的左上角坐标的纵坐标,且空域非相邻块A′~E′的尺寸也为4*4。
表2
空域非相邻块位置 | neig_x_pos | neig_y_pos |
左(A′) | cur_x_pos-8 | cur_y_pos+cu_height/2 |
上(B′) | cur_x_pos+cu_width/2 | cur_y_pos-8 |
左上(C′) | cur_x_pos-8 | cur_y_pos-8 |
右上(D′) | cur_x_pos+cu_width | cur_y_pos-8 |
左下(E′) | cur_x_pos-8 | cur_y_pos+cu_height |
步骤802,在候选运动信息列表中的运动信息不足的情况下,从空域运动信息列表中获取至少一个运动信息,采用该至少一个运动信息对候选运动信息列表进行填充。
候选运动信息列表用于为当前编解码块提供候选的预测位移矢量。
在一个示例中,在当前编解码块为IBC块的情况下,如果候选运动信息列表中的运动信息不足,则从空域运动信息列表中获取至少一个运动信息,并采用该至少一个运动信息对候选运动信息列表进行填充。
在另一个示例中,在当前编解码块为ISC块的情况下,如果候选运动信息列表中的运动信息不足,则从空域运动信息列表中获取至少一个运动信息,并采用该至少一个运动信息对候选运动信息列表进行填充。
另外,候选运动信息列表中的运动信息不足,可以是指候选运动信息列表的长度小于门限值。其中,候选运动信息列表的长度,是指该候选运动信息列表中包含的运动信息的数量。可选地,上述门限值是候选运动信息列表的最大长度,例如假设该候选运动信息列表的最大长度为7,那么在候选运动信息列表的长度小于7的情况下,采用额外的运动信息对该候选运动信息列表进行填充。可选地,上述门限值小于候选运动信息列表的最大长度,例如假设该候选运动信息列表的最大长度为7,门限值可以设置为5,那么在候选运动信息列表的长度小于5的情况下,采用额外的运动信息对该候选运动信息列表进行填充。
通过将从空域运动信息列表获取的至少一个运动信息,添加至候选运动信息列表中,从而实现对该候选运动信息列表进行填充。
在一个示例中,不进行查重比对,直接将上述至少一个运动信息添加至候选运动信息列表中。例如,在候选运动信息列表为空的情况下,可以直接将上述至少一个运动信息添加至候选运动信息列表中,不进行查重比对;或者,即便在候选运动信息列表不为空的情况下,也可以直接将上述至少一个运动信息添加至候选运动信息列表中,不进行查重比对。
在另一个示例中,将待添加的运动信息与候选运动信息列表中已有的运动信息进行查重比对;根据查重比对结果对候选运动信息列表进行更新。例如,如果待添加的运动信息与候选运动信息列表中某个已有的运动信息(记为目标运动信息)相同,那么说明存在重复,计算机设备可以将目标运动信息从候选运动信息列表中删除之后,再将该待添加的运动信息添加至候选运动信息列表中,也可以不将该待添加的运动信息添加至候选运动信息列表中。可选地,往候选运动信息列表中逐个添加运动信息,每添加一个运动信息与列表中已有的运动信息进行一次查重比对。当然,上文介绍的查重比对的方式仅是示例性和解释性的,本申请实施例并不限定还可采用其他方式。
在一个示例中,候选运动信息列表用于为IBC块提供候选的BVP。在当前编解码块为IBC块的情况下,对于编码端来说可以从该候选运动信息列表中找到当前块的BVP的索引,并将该索引编码至码流中;对于解码端来说可以从码流中获取当前块的BVP的索引,然后根据该索引从候选运动信息列表中导出当前块的BVP。在本申请实施例中,通过采用空域临近的ISC块(可选地还包括空域临近的IBC块)的运动信息对当前块的候选运动信息列表进行填充,从而为当前块提供更多更有效的候选BVP,有助于提升视频的压缩性能。
在另一个示例中,候选运动信息列表用于为ISC块提供候选的SVP。在当前编解码块为ISC块的情况下,对于编码端来说可以从该候选运动信息列表中找到当前串的SVP的索引,并将该索引编码至码流中;对于解码端来说可以从码流中获取当前串的SVP的索引,然后根据该索引从候选运动信息列表中导出当前串的SVP。在本申请实施例中,通过采用空域临近的ISC块(可选地还包括空域临近的IBC块)的运动信息对当前串的候选运动信息列表进行填充,从而为当前串提供更多更有效的候选SVP,有助于提升视频的压缩性能。
在另一个示例中,候选运动信息列表用于为IBC块提供候选的BVP以及为ISC串提供候选的SVP。也即,IBC块和ISC串可以共用同一个候选运动信息列表,从而不需要维护多个候选运动信息列表,降低编解码的复杂度。
采用本申请实施例提供的技术方案,一方面可以从历史运动信息列表中导出运动信息填充至候选运动信息列表中,另一方面还可以从空域运动信息列表中导出运动信息填充至候选运动信息列表中。对于上述两种不同来源运动信息在候选运动信息列表中的排布位置,包括但不限于有如下几种可能的实现方式:
1、从空域运动信息列表中导出的运动信息在候选运动信息列表中的位置,位于从历史运动信息列表中导出的运动信息在候选运动信息列表中的位置之前。
2、从空域运动信息列表中导出的运动信息在候选运动信息列表中的位置,位于从历史运动信息列表中导出的运动信息在候选运动信息列表中的位置之后。
3、从空域运动信息列表中导出的运动信息位于候选运动信息列表中的设定位置。
4、当候选运动信息列表中的至少一个位置不存在运动信息时,从空域运动信息列表中导出的运动信息填入上述至少一个位置。
对于上述第3点,例如,候选运动信息列表存在第0~6共7个位置,空域运动信息列表 中包括图9中A、B、C、D、E共5个空域相邻块的运动信息,那么上述7个位置可以分别填入A、B、A、B、C、D、E的运动信息。又例如,在上述7个位置也可以均填入A的运动信息。
对于上述第4点,在填入时,按照运动信息在空域运动信息列表中的顺序,依次填入上述至少一个位置。例如,空域运动信息列表中按序包括A、B、C、D、E共5个空域相邻块的运动信息,候选运动信息列表中的第1、3、4个位置为空,那么可以将A的运动信息填入候选运动信息列表的第1个位置,将B的运动信息填入候选运动信息列表的第3个位置,将C的运动信息填入候选运动信息列表的第4个位置。或者,将空域运动信息列表中指定位置的运动信息,填入上述至少一个位置。例如,空域运动信息列表中按序包括A、B、C、D、E共5个空域相邻块的运动信息,候选运动信息列表中的第1、3、4个位置为空,将空域运动信息列表中指定位置(如第1和2个位置)的运动信息填入上述3个位置,那么在一个示例中可以将A的运动信息填入候选运动信息列表的第1个位置,将B的运动信息填入候选运动信息列表的第3个位置,将A的运动信息填入候选运动信息列表的第4个位置。
以候选运动信息列表为上文介绍的CBVP列表为例,如果某个类别中的运动信息不足(例如从历史运动信息列表中未导出该类别的运动信息或者导出的数量不够),那么如果空域运动信息列表中包含该类别的运动信息,可以从空域运动信息列表中导出该类别的运动信息添加到该类别中。
可选地,在候选运动信息列表中的运动信息不足的情况下,还可以采用预设运动信息对候选运动信息列表进行填充。预设运动信息可以在标准或协议中预先规定。例如,预设运动信息包括位移矢量(0,0)。
在一个示例中,如果某个类别中的运动信息不足(例如历史运动信息列表中不存在该类别的运动信息),且空域运动信息列表中也不存在该类别的运动信息或者空域运动信息列表无法提供足够的运动信息,那么可以采用预设运动信息(如(0,0))对候选运动信息列表进行填充。
综上所述,本申请实施例提供的技术方案,通过在候选运动信息列表中包含的运动信息不足时,采用空域临近的运动信息进行填充,实现对该候选运动信息列表的内容扩充,从而在该候选运动信息列表中提供更多更有效的位移矢量,以取得更好的位移矢量预测效果,提升视频的压缩性能。
由于当前编解码块可能存在多个空域临近块,如包括左方、上方、左上方、右上方、左下方等多个不同位置的空域临近块,因此在构建空域运动信息列表时,可以按照一定的顺序选择空域临近块的运动信息添加至空域运动信息列表中。下面,通过几个示例对空域运动信息列表的构建过程进行介绍说明。
示例1:构建空域运动信息列表可以包括如下几个步骤:
1、检测当前编解码块是否存在可用的空域相邻块的运动信息;
在本申请实施例中,空域相邻块包括空域相邻的ISC块,可选地还包括空域相邻的IBC块。
以空域相邻块包括空域相邻的ISC块为例,如果当前编解码块存在空域相邻的ISC块,且该ISC块能够提供可用的运动信息(如存储有该ISC块的运动信息),那么确定该当前编解 码块存在可用的空域相邻块的运动信息;否则,如果当前编解码块不存在空域相邻的ISC块,或者即便存在空域相邻的ISC块但该ISC块无法提供可用的运动信息(如未存储有该ISC块的运动信息),那么确定该当前编解码块不存在可用的空域相邻块的运动信息。
2、若当前编解码块存在可用的空域相邻块的运动信息,则获取可用的空域相邻块的运动信息添加至空域运动信息列表中;
3、若当前编解码块不存在可用的空域相邻块的运动信息,或者所构建的空域运动信息列表未填满时,则检测当前编解码块是否存在可用的空域非相邻块的运动信息;
在本申请实施例中,空域非相邻块包括空域非相邻的ISC块、空域非相邻的IBC块中的至少一种。另外,可用的空域非相邻块的运动信息的解释说明,可参考针对可用的空域相邻块的运动信息的解释说明,此处不再赘述。
4、若当前编解码块存在可用的空域非相邻块的运动信息,则获取可用的空域非相邻块的运动信息添加至空域运动信息列表中。
另外,若当前编解码块不存在可用的空域相邻块和空域非相邻块的运动信息,则说明无法从空域临近块为候选运动信息列表提供额外的运动信息。
另外,在当前编解码块存在多个空域相邻块的情况下,可以按照第一设定顺序逐个检测空域相邻块是否存在可用的运动信息;类似地,在当前编解码块存在多个空域非相邻块的情况下,可以按照第二设定顺序逐个检测空域非相邻块是否存在可用的运动信息。例如,参考图9,上述第一设定顺序可以是A→B→C→D→E,上述第二设定顺序可以是A′→B′→C′→D′→E′。当然,这里针对第一设定顺序和第二设定顺序的介绍说明仅是示例性和解释性的,本申请并不限定还可以采用其他顺序。
在本示例中,优先采用空域相邻块的运动信息来填充候选运动信息列表,在空域相邻块无法提供可用的运动信息的情况下或者所提供的可用运动信息不足的情况下,采用空域非相邻块的运动信息来填充候选运动信息列表,尽可能保证候选运动信息列表的填充效果。
示例2:构建空域运动信息列表可以包括如下几个步骤:
1、按照设定顺序遍历多个位置组,每个位置组包括一个空域相邻块和一个空域非相邻块;
2、对于每个位置组,检测该位置组中包含的空域相邻块是否存在可用的运动信息;
3、若空域相邻块存在可用的运动信息,则获取空域相邻块的可用的运动信息添加至空域运动信息列表中;
4、若空域相邻块不存在可用的运动信息,则检测位置组中包含的空域非相邻块是否存在可用的运动信息;
5、若空域非相邻块存在可用的运动信息,则获取空域非相邻块的可用的运动信息添加至空域运动信息列表中。
另外,若空域非相邻块也不存在可用的运动信息,则说明该位置组无法提供可用的运动信息。
例如,参考图9,包括5个位置组:(A,A′)、(B,B′)、(C,C′)、(D,D′)、(E,E′)。上述设定顺序可以是{A→A′,B→B′,C→C′,D→D′,E→E′}。例如,对于每个位置X(包含空域相邻块和空域非相邻块,X=A,B,C,D,E),先检查空域相邻块X是否为ISC块,如果是,获得其对应的SV,然后,转向下一个位置;否则,检查空域非相邻块X′是否为ISC或IBC块,如果是,则获得其对应SV或者BV;否则,认为该位置不可得,转向下一个位置。 当然,这里针对设定顺序的介绍说明仅是示例性和解释性的,本申请并不限定还可以采用其他顺序。
在本示例中,按照设定顺序遍历多个位置组来选择空域相邻块的运动信息,对于每一个位置组,优先采用空域相邻块的运动信息,在空域相邻块无法提供可用的运动信息的情况下,采用空域非相邻块的运动信息,尽可能保证候选运动信息列表的填充效果。
示例3:构建空域运动信息列表可以包括如下几个步骤:
1、检测当前编解码块是否存在可用的空域非相邻块的运动信息;
在本申请实施例中,空域非相邻块包括空域非相邻的ISC块、空域非相邻的IBC块中的至少一种。
2、若当前编解码块存在可用的空域非相邻块的运动信息,则获取可用的空域非相邻块的运动信息添加至空域运动信息列表中;
3、若当前编解码块不存在可用的空域非相邻块的运动信息,或者所构建的空域运动信息列表未填满时,则检测当前编解码块是否存在可用的空域相邻块的运动信息;
在本申请实施例中,空域相邻块包括空域相邻的ISC块,可选地还包括空域相邻的IBC块。
4、若当前编解码块存在可用的空域相邻块的运动信息,则获取可用的空域相邻块的运动信息添加至空域运动信息列表中。
另外,若当前编解码块不存在可用的空域非相邻块和空域相邻块的运动信息,则说明无法从空域临近块为候选运动信息列表提供额外的运动信息。
另外,在当前编解码块存在多个空域非相邻块的情况下,可以按照第二设定顺序逐个检测空域非相邻块是否存在可用的运动信息;类似地,在当前编解码块存在多个空域相邻块的情况下,可以按照第一设定顺序逐个检测空域相邻块是否存在可用的运动信息。例如,参考图9,上述第一设定顺序可以是A→B→C→D→E,上述第二设定顺序可以是A′→B′→C′→D′→E′。当然,这里针对第一设定顺序和第二设定顺序的介绍说明仅是示例性和解释性的,本申请并不限定还可以采用其他顺序。
在本示例中,优先采用空域非相邻块的运动信息来填充候选运动信息列表,在空域非相邻块无法提供可用的运动信息的情况下或者所提供的可用运动信息不足的情况下,采用空域相邻块的运动信息来填充候选运动信息列表,尽可能保证候选运动信息列表的填充效果。
示例4:构建空域运动信息列表可以包括如下几个步骤:
1、按照设定顺序遍历多个位置组,每个位置组包括一个空域相邻块和一个空域非相邻块;
2、对于每个位置组,检测该位置组中包含的空域非相邻块是否存在可用的运动信息;
3、若空域非相邻块存在可用的运动信息,则获取空域非相邻块的可用的运动信息添加至空域运动信息列表中;
4、若空域非相邻块不存在可用的运动信息,则检测位置组中包含的空域相邻块是否存在可用的运动信息;
5、若空域相邻块存在可用的运动信息,则获取空域相邻块的可用的运动信息添加至空域运动信息列表中。
另外,若空域相邻块也不存在可用的运动信息,则说明该位置组无法提供可用的运动信息。
例如,参考图9,包括5个位置组:(A,A′)、(B,B′)、(C,C′)、(D,D′)、(E,E′)。上述设定顺序可以是{A′→A,B′→B,C′→C,D′→D,E′→E}。例如,对于每个位置X(包含空域相邻块和空域非相邻块,X=A,B,C,D,E),先检查空域非相邻块X′是否为ISC或IBC块,如果是,获得其对应的SV或者BV,然后,转向下一个位置;否则,检查空域相邻块X是否为ISC块,如果是,则获得其对应SV;否则,认为该位置不可得,转向下一个位置。当然,这里针对设定顺序的介绍说明仅是示例性和解释性的,本申请并不限定还可以采用其他顺序。
在本示例中,按照设定顺序遍历多个位置组来选择空域相邻块的运动信息,对于每一个位置组,优先采用空域非相邻块的运动信息,在空域非相邻块无法提供可用的运动信息的情况下,采用空域相邻块的运动信息,尽可能保证候选运动信息列表的填充效果。
示例5:构建空域运动信息列表可以包括如下几个步骤:
1、检测当前编解码块是否存在可用的空域相邻块的运动信息;
在本申请实施例中,空域相邻块包括空域相邻的ISC块,可选地还包括空域相邻的IBC块。
2、若当前编解码块存在可用的空域相邻块的运动信息,则获取可用的空域相邻块的运动信息添加至空域运动信息列表中。
另外,若当前编解码块不存在可用的空域相邻块的运动信息,则说明无法从空域临近块为候选运动信息列表提供额外的运动信息。
在一个示例中,按照设定顺序遍历多个位置,每个位置包括一个空域相邻块;对于每个位置,检测该位置的空域相邻块是否存在可用的运动信息;若该空域相邻块存在可用的运动信息,则获取该空域相邻块的可用的运动信息添加至空域运动信息列表中。
例如,在当前编解码块存在多个空域相邻块的情况下,可以按照第一设定顺序逐个检测空域相邻块是否存在可用的运动信息。例如,参考图9,上述第一设定顺序可以是A→B→C→D→E。当然,这里针对第一设定顺序的介绍说明仅是示例性和解释性的,本申请并不限定还可以采用其他顺序。
本申请实施例提供了多种构建空域运动信息列表的方式,当然本申请并不限定还可以采用其他方式来构建空域运动信息列表,这可以灵活设计。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图10,其示出了本申请一个实施例提供的视频编解码中的运动信息列表构建装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以设置在计算机设备上。该装置1000可以包括:列表构建模块1010和列表填充模块1020。
列表构建模块1010,用于构建空域运动信息列表,所述空域运动信息列表中包括当前编解码块的空域临近块的运动信息,所述空域临近块至少包括ISC块。
列表填充模块1020,用于在候选运动信息列表中的运动信息不足的情况下,从所述空域运动信息列表中获取至少一个运动信息,采用所述至少一个运动信息对所述候选运动信息列表进行填充;其中,所述候选运动信息列表用于为所述当前编解码块提供候选的预测位移矢 量。
在示例性实施例中,所述ISC块包括以下至少一种:空域相邻的ISC块、空域非相邻的ISC块。
在示例性实施例中,所述空域临近块还包括以下至少一种:空域相邻的IBC块、空域非相邻的IBC块。
在示例性实施例中,所述候选运动信息列表用于为IBC块提供候选的BVP;或者,所述候选运动信息列表用于为ISC串提供候选的SVP;或者,所述候选运动信息列表用于为IBC块提供候选的BVP以及为ISC串提供候选的SVP。
在示例性实施例中,在所述空域临近块包括ISC块的情况下,所述ISC块的运动信息包括以下至少一项:
所述ISC块中按扫描顺序的第一个编解码串的串矢量SV;
所述ISC块中按扫描顺序的最后一个编解码串的SV;
所述ISC块中按扫描顺序的第一个编解码串的SV和最后一个编解码串的SV的均值;
所述ISC块中按扫描顺序的第一个编解码串的SV和最后一个编解码串的SV的加权均值;
所述ISC块中多个编解码串的SV。
在示例性实施例中,所述列表构建模块1010,用于:
检测所述当前编解码块是否存在可用的空域相邻块的运动信息,所述空域相邻块包括空域相邻的ISC块;
若所述当前编解码块存在所述可用的空域相邻块的运动信息,则获取所述可用的空域相邻块的运动信息添加至所述空域运动信息列表中;
若所述当前编解码块不存在所述可用的空域相邻块的运动信息,或者所构建的所述空域运动信息列表未填满时,则检测所述当前编解码块是否存在可用的空域非相邻块的运动信息,所述空域非相邻块包括空域非相邻的ISC块、空域非相邻的IBC块中的至少一种;
若所述当前编解码块存在所述可用的空域非相邻块的运动信息,则获取所述可用的空域非相邻块的运动信息添加至所述空域运动信息列表中。
在示例性实施例中,所述列表构建模块1010,用于:
按照设定顺序遍历多个位置组,每个位置组包括一个空域相邻块和一个空域非相邻块;
对于每个位置组,检测所述位置组中包含的空域相邻块是否存在可用的运动信息;
若所述空域相邻块存在可用的运动信息,则获取所述空域相邻块的可用的运动信息添加至所述空域运动信息列表中;
若所述空域相邻块不存在可用的运动信息,则检测所述位置组中包含的空域非相邻块是否存在可用的运动信息;
若所述空域非相邻块存在可用的运动信息,则获取所述空域非相邻块的可用的运动信息添加至所述空域运动信息列表中。
在示例性实施例中,所述列表构建模块1010,用于:
检测所述当前编解码块是否存在可用的空域非相邻块的运动信息,所述空域非相邻块包括空域非相邻的ISC块、空域非相邻的IBC块中的至少一种;
若所述当前编解码块存在所述可用的空域非相邻块的运动信息,则获取所述可用的空域 非相邻块的运动信息添加至所述空域运动信息列表中;
若所述当前编解码块不存在所述可用的空域非相邻块的运动信息,或者所构建的所述空域运动信息列表未填满时,则检测所述当前编解码块是否存在可用的空域相邻块的运动信息,所述空域相邻块包括空域相邻的ISC块;
若所述当前编解码块存在所述可用的空域相邻块的运动信息,则获取所述可用的空域相邻块的运动信息添加至所述空域运动信息列表中。
在示例性实施例中,所述列表构建模块1010,用于:
按照设定顺序遍历多个位置组,每个位置组包括一个空域相邻块和一个空域非相邻块;
对于每个位置组,检测所述位置组中包含的空域非相邻块是否存在可用的运动信息;
若所述空域非相邻块存在可用的运动信息,则获取所述空域非相邻块的可用的运动信息添加至所述空域运动信息列表中;
若所述空域非相邻块不存在可用的运动信息,则检测所述位置组中包含的空域相邻块是否存在可用的运动信息;
若所述空域相邻块存在可用的运动信息,则获取所述空域相邻块的可用的运动信息添加至所述空域运动信息列表中。
在示例性实施例中,所述列表构建模块1010,用于:
按照设定顺序遍历多个位置,每个位置包括一个空域相邻块;
对于每个位置,检测所述位置的空域相邻块是否存在可用的运动信息;
若所述空域相邻块存在可用的运动信息,则获取所述空域相邻块的可用的运动信息添加至所述空域运动信息列表中。
在示例性实施例中,从所述空域运动信息列表中导出的运动信息在所述候选运动信息列表中的位置,位于从历史运动信息列表中导出的运动信息在所述候选运动信息列表中的位置之前;
或者,从所述空域运动信息列表中导出的运动信息在所述候选运动信息列表中的位置,位于从历史运动信息列表中导出的运动信息在所述候选运动信息列表中的位置之后;
或者,从所述空域运动信息列表中导出的运动信息位于所述候选运动信息列表中的设定位置;
或者,当所述候选运动信息列表中的至少一个位置不存在运动信息时,从所述空域运动信息列表中导出的运动信息填入所述至少一个位置;填入时,按照所述运动信息在所述空域运动信息列表中的顺序,依次填入所述至少一个位置;或者,将所述空域运动信息列表中指定位置的运动信息,填入所述至少一个位置。
在示例性实施例中,所述列表填充模块1020,还用于在所述候选运动信息列表中的运动信息不足的情况下,采用预设运动信息对所述候选运动信息列表进行填充。
在示例性实施例中,所述列表填充模块1020,还用于将待添加的运动信息与所述候选运动信息列表中已有的运动信息进行查重比对;根据查重比对结果对所述候选运动信息列表进行更新。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述 实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图11,其示出了本申请一个实施例提供的计算机设备的结构框图。该计算机设备可以是上文介绍的编码端设备,也可以是上文介绍的解码端设备。该计算机设备150可以包括:处理器151、存储器152、通信接口153、编码器/解码器154和总线155。
处理器151包括一个或者一个以上处理核心,处理器151通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。
存储器152可用于存储计算机程序,处理器151用于执行该计算机程序,以实现上述视频编解码中的运动信息列表构建方法。
通信接口153可用于与其它设备进行通信,如收发音视频数据。
编码器/解码器154可用于实现编码和解码功能,如对音视频数据进行编码和解码。
存储器152通过总线155与处理器151相连。
此外,存储器152可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,易失性或非易失性存储设备包括但不限于:磁盘或光盘,EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦除可编程只读存储器),EPROM(Erasable Programmable Read-Only Memory,可擦除可编程只读存储器),SRAM(Static Random-Access Memory,静态随时存取存储器),ROM(Read-Only Memory,只读存储器),磁存储器,快闪存储器,PROM(Programmable read-only memory,可编程只读存储器)。
本领域技术人员可以理解,图11中示出的结构并不构成对计算机设备150的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被处理器执行时实现上述视频编解码中的运动信息列表构建方法。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述视频编解码中的运动信息列表构建方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (16)
- 一种视频编解码中的运动信息列表构建方法,所述方法包括:构建空域运动信息列表,所述空域运动信息列表中包括当前编解码块的空域临近块的运动信息,所述空域临近块至少包括帧内串复制ISC块;在候选运动信息列表中的运动信息不足的情况下,从所述空域运动信息列表中获取至少一个运动信息,采用所述至少一个运动信息对所述候选运动信息列表进行填充;其中,所述候选运动信息列表用于为所述当前编解码块提供候选的预测位移矢量。
- 根据权利要求1所述的方法,其中,所述ISC块包括以下至少一种:空域相邻的ISC块、空域非相邻的ISC块。
- 根据权利要求1所述的方法,其中,所述空域临近块还包括以下至少一种:空域相邻的帧内块复制IBC块、空域非相邻的IBC块。
- 根据权利要求1所述的方法,其中,所述候选运动信息列表用于为IBC块提供候选的预测块矢量BVP;或者,所述候选运动信息列表用于为ISC串提供候选的预测串矢量SVP;或者,所述候选运动信息列表用于为IBC块提供候选的BVP以及为ISC串提供候选的SVP。
- 根据权利要求1所述的方法,其中,在所述空域临近块包括ISC块的情况下,所述ISC块的运动信息包括以下至少一项:所述ISC块中按扫描顺序的第一个编解码串的串矢量SV;所述ISC块中按扫描顺序的最后一个编解码串的SV;所述ISC块中按扫描顺序的第一个编解码串的SV和最后一个编解码串的SV的均值;所述ISC块中按扫描顺序的第一个编解码串的SV和最后一个编解码串的SV的加权均值;所述ISC块中多个编解码串的SV。
- 根据权利要求1所述的方法,其中,所述构建空域运动信息列表,包括:检测所述当前编解码块是否存在可用的空域相邻块的运动信息,所述空域相邻块包括空域相邻的ISC块;若所述当前编解码块存在所述可用的空域相邻块的运动信息,则获取所述可用的空域相邻块的运动信息添加至所述空域运动信息列表中;若所述当前编解码块不存在所述可用的空域相邻块的运动信息,或者所构建的所述空域运动信息列表未填满时,则检测所述当前编解码块是否存在可用的空域非相邻块的运动信息,所述空域非相邻块包括空域非相邻的ISC块、空域非相邻的IBC块中的至少一种;若所述当前编解码块存在所述可用的空域非相邻块的运动信息,则获取所述可用的空域非相邻块的运动信息添加至所述空域运动信息列表中。
- 根据权利要求1所述的方法,其中,所述构建空域运动信息列表,包括:按照设定顺序遍历多个位置组,每个位置组包括一个空域相邻块和一个空域非相邻块;对于每个位置组,检测所述位置组中包含的空域相邻块是否存在可用的运动信息;若所述空域相邻块存在可用的运动信息,则获取所述空域相邻块的可用的运动信息添加至所述空域运动信息列表中;若所述空域相邻块不存在可用的运动信息,则检测所述位置组中包含的空域非相邻块是否存在可用的运动信息;若所述空域非相邻块存在可用的运动信息,则获取所述空域非相邻块的可用的运动信息添加至所述空域运动信息列表中。
- 根据权利要求1所述的方法,其中,所述构建空域运动信息列表,包括:检测所述当前编解码块是否存在可用的空域非相邻块的运动信息,所述空域非相邻块包括空域非相邻的ISC块、空域非相邻的IBC块中的至少一种;若所述当前编解码块存在所述可用的空域非相邻块的运动信息,则获取所述可用的空域非相邻块的运动信息添加至所述空域运动信息列表中;若所述当前编解码块不存在所述可用的空域非相邻块的运动信息,或者所构建的所述空域运动信息列表未填满时,则检测所述当前编解码块是否存在可用的空域相邻块的运动信息,所述空域相邻块包括空域相邻的ISC块;若所述当前编解码块存在所述可用的空域相邻块的运动信息,则获取所述可用的空域相邻块的运动信息添加至所述空域运动信息列表中。
- 根据权利要求1所述的方法,其中,所述构建空域运动信息列表,包括:按照设定顺序遍历多个位置组,每个位置组包括一个空域相邻块和一个空域非相邻块;对于每个位置组,检测所述位置组中包含的空域非相邻块是否存在可用的运动信息;若所述空域非相邻块存在可用的运动信息,则获取所述空域非相邻块的可用的运动信息添加至所述空域运动信息列表中;若所述空域非相邻块不存在可用的运动信息,则检测所述位置组中包含的空域相邻块是否存在可用的运动信息;若所述空域相邻块存在可用的运动信息,则获取所述空域相邻块的可用的运动信息添加至所述空域运动信息列表中。
- 根据权利要求1所述的方法,其中,所述构建空域运动信息列表,包括:按照设定顺序遍历多个位置,每个位置包括一个空域相邻块;对于每个位置,检测所述位置的空域相邻块是否存在可用的运动信息;若所述空域相邻块存在可用的运动信息,则获取所述空域相邻块的可用的运动信息添加至所述空域运动信息列表中。
- 根据权利要求1至10任一项所述的方法,其中,从所述空域运动信息列表中导出的运动信息在所述候选运动信息列表中的位置,位于从历史运动信息列表中导出的运动信息在所述候选运动信息列表中的位置之前;或者,从所述空域运动信息列表中导出的运动信息在所述候选运动信息列表中的位置,位于从历史运动信息列表中导出的运动信息在所述候选运动信息列表中的位置之后;或者,从所述空域运动信息列表中导出的运动信息位于所述候选运动信息列表中的设定位置;或者,当所述候选运动信息列表中的至少一个位置不存在运动信息时,从所述空域运动信息列表中导出的运动信息填入所述至少一个位置;填入时,按照所述运动信息在所述空域运动信息列表中的顺序,依次填入所述至少一个位置;或者,将所述空域运动信息列表中指定位置的运动信息,填入所述至少一个位置。
- 根据权利要求1至10任一项所述的方法,其中,所述方法还包括:在所述候选运动信息列表中的运动信息不足的情况下,采用预设运动信息对所述候选运动信息列表进行填充。
- 根据权利要求1至10任一项所述的方法,其中,所述采用所述至少一个运动信息对所述候选运动信息列表进行填充,包括:将待添加的运动信息与所述候选运动信息列表中已有的运动信息进行查重比对;根据查重比对结果对所述候选运动信息列表进行更新。
- 一种视频编解码中的运动信息列表构建装置,所述装置包括:列表构建模块,用于构建空域运动信息列表,所述空域运动信息列表中包括当前编解码块的空域临近块的运动信息,所述空域临近块至少包括帧内串复制ISC块;列表填充模块,用于在候选运动信息列表中的运动信息不足的情况下,从所述空域运动信息列表中获取至少一个运动信息,采用所述至少一个运动信息对所述候选运动信息列表进行填充;其中,所述候选运动信息列表用于为所述当前编解码块提供候选的预测位移矢量。
- 一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至13任一项所述的方法。
- 一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至13任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21857553.8A EP4099698A4 (en) | 2020-08-20 | 2021-08-11 | METHOD, APPARATUS AND DEVICE FOR LISTING MOTION INFORMATION IN VIDEO CODING AND DECODING |
US17/896,930 US20220408084A1 (en) | 2020-08-20 | 2022-08-26 | Method and apparatus for constructing motion information list in video encoding and decoding and device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010843772.7A CN114079788A (zh) | 2020-08-20 | 2020-08-20 | 视频编解码中的运动信息列表构建方法、装置及设备 |
CN202010843772.7 | 2020-08-20 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/896,930 Continuation US20220408084A1 (en) | 2020-08-20 | 2022-08-26 | Method and apparatus for constructing motion information list in video encoding and decoding and device |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022037458A1 true WO2022037458A1 (zh) | 2022-02-24 |
Family
ID=80281906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/112092 WO2022037458A1 (zh) | 2020-08-20 | 2021-08-11 | 视频编解码中的运动信息列表构建方法、装置及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220408084A1 (zh) |
EP (1) | EP4099698A4 (zh) |
CN (1) | CN114079788A (zh) |
WO (1) | WO2022037458A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106464905A (zh) * | 2014-05-06 | 2017-02-22 | 寰发股份有限公司 | 用于块内复制模式编码的块向量预测方法 |
US20170188045A1 (en) * | 2011-03-08 | 2017-06-29 | Texas Instruments Incorporated | Parsing friendly and error resilient merge flag coding in video coding |
CN110809161A (zh) * | 2019-03-11 | 2020-02-18 | 杭州海康威视数字技术股份有限公司 | 运动信息候选者列表构建方法及装置 |
CN110855993A (zh) * | 2018-08-21 | 2020-02-28 | 华为技术有限公司 | 一种图像块的运动信息的预测方法及装置 |
CN110876065A (zh) * | 2018-08-29 | 2020-03-10 | 华为技术有限公司 | 候选运动信息列表的构建方法、帧间预测方法及装置 |
WO2020141954A1 (ko) * | 2019-01-05 | 2020-07-09 | 엘지전자 주식회사 | 비디오 데이터를 처리하기 위한 방법 및 장치 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150264348A1 (en) * | 2014-03-17 | 2015-09-17 | Qualcomm Incorporated | Dictionary coding of video content |
GB201409634D0 (en) * | 2014-05-30 | 2014-07-16 | Canon Kk | Intra block copy mode encoding choice |
GB2527354A (en) * | 2014-06-19 | 2015-12-23 | Canon Kk | Method and apparatus for vector encoding in video coding and decoding |
CN117319650A (zh) * | 2018-08-28 | 2023-12-29 | 华为技术有限公司 | 编码方法、解码方法以及编码装置、解码装置 |
CN111163322B (zh) * | 2020-01-08 | 2022-08-30 | 绍兴文理学院 | 对基于历史运动矢量的索引进行映射的编码及解码方法 |
-
2020
- 2020-08-20 CN CN202010843772.7A patent/CN114079788A/zh active Pending
-
2021
- 2021-08-11 WO PCT/CN2021/112092 patent/WO2022037458A1/zh unknown
- 2021-08-11 EP EP21857553.8A patent/EP4099698A4/en active Pending
-
2022
- 2022-08-26 US US17/896,930 patent/US20220408084A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170188045A1 (en) * | 2011-03-08 | 2017-06-29 | Texas Instruments Incorporated | Parsing friendly and error resilient merge flag coding in video coding |
CN106464905A (zh) * | 2014-05-06 | 2017-02-22 | 寰发股份有限公司 | 用于块内复制模式编码的块向量预测方法 |
CN110855993A (zh) * | 2018-08-21 | 2020-02-28 | 华为技术有限公司 | 一种图像块的运动信息的预测方法及装置 |
CN110876065A (zh) * | 2018-08-29 | 2020-03-10 | 华为技术有限公司 | 候选运动信息列表的构建方法、帧间预测方法及装置 |
WO2020141954A1 (ko) * | 2019-01-05 | 2020-07-09 | 엘지전자 주식회사 | 비디오 데이터를 처리하기 위한 방법 및 장치 |
CN110809161A (zh) * | 2019-03-11 | 2020-02-18 | 杭州海康威视数字技术股份有限公司 | 运动信息候选者列表构建方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114079788A (zh) | 2022-02-22 |
US20220408084A1 (en) | 2022-12-22 |
EP4099698A1 (en) | 2022-12-07 |
EP4099698A4 (en) | 2023-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022022297A1 (zh) | 视频解码方法、视频编码方法、装置、设备及存储介质 | |
CN110944185B (zh) | 视频解码的方法和装置、计算机设备及存储介质 | |
JP2019505144A (ja) | ビデオコーディングのためのフィルタのための幾何学的変換 | |
JP7343669B2 (ja) | Vvcにおける色変換のための方法及び機器 | |
KR20220045045A (ko) | 비디오 신호의 행렬 가중된 인트라 예측 | |
CN113259661A (zh) | 视频解码的方法和装置 | |
JP2016501483A (ja) | ビデオコーディングにおけるhevc拡張用の多重レイヤの低複雑度サポート | |
JP7271675B2 (ja) | ビデオ復号の方法および装置、並びにプログラム | |
WO2022116836A1 (zh) | 视频解码方法、视频编码方法、装置及设备 | |
KR20220127308A (ko) | 비디오 코딩을 위한 방법 및 장치 | |
WO2022078339A1 (zh) | 参考像素候选列表构建方法、装置、设备及存储介质 | |
US20240089494A1 (en) | Video encoding and decoding method and apparatus, storage medium, electronic device, and computer program product | |
TW201921938A (zh) | 具有在用於視訊寫碼之隨機存取組態中之未來參考訊框之可調適圖像群組結構 | |
WO2022022299A1 (zh) | 视频编解码中的运动信息列表构建方法、装置及设备 | |
WO2022037458A1 (zh) | 视频编解码中的运动信息列表构建方法、装置及设备 | |
JP2023546962A (ja) | 成分間のブロック終了フラグの符号化 | |
WO2022078150A1 (zh) | 候选运动信息列表确定方法、装置、电子设备及存储介质 | |
JP7412443B2 (ja) | 非線形ループフィルタリングのための方法および装置 | |
CN111770338B (zh) | 编码单元的索引值确定方法、装置、设备及存储介质 | |
RU2783337C2 (ru) | Способ декодирования видео и видеодекодер | |
WO2022037464A1 (zh) | 视频解码方法、视频编码方法、装置、设备及存储介质 | |
JP2024513993A (ja) | 方法、電子装置、非一時的コンピュータ可読記憶媒体、およびコンピュータプログラム | |
JP2024512662A (ja) | 算術符号化のためのブロック・レベルのウィンドウ・サイズ更新のための方法および装置 | |
CN114079782A (zh) | 视频图像重建方法、装置、计算机设备及存储介质 | |
KR20240100392A (ko) | 비디오 코딩에서 아핀 병합 모드에 대한 후보 도출 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21857553 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021857553 Country of ref document: EP Effective date: 20220831 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |