WO2020038357A1 - Procédé de construction de liste de candidats à une fusion, dispositif, et procédé et dispositif de codage/décodage - Google Patents

Procédé de construction de liste de candidats à une fusion, dispositif, et procédé et dispositif de codage/décodage Download PDF

Info

Publication number
WO2020038357A1
WO2020038357A1 PCT/CN2019/101559 CN2019101559W WO2020038357A1 WO 2020038357 A1 WO2020038357 A1 WO 2020038357A1 CN 2019101559 W CN2019101559 W CN 2019101559W WO 2020038357 A1 WO2020038357 A1 WO 2020038357A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
fusion candidate
current block
adjacent
candidate list
Prior art date
Application number
PCT/CN2019/101559
Other languages
English (en)
Chinese (zh)
Inventor
杨海涛
赵寅
徐巍炜
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN201811014507.7A external-priority patent/CN110855998B/zh
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2020038357A1 publication Critical patent/WO2020038357A1/fr

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction

Definitions

  • the embodiments of the present application relate to the field of video encoding, and more specifically, to a method for constructing a fusion candidate list in an inter prediction mode in a video encoding and decoding process, and an applied encoding and decoding method.
  • Video encoding (video encoding and decoding) is widely used in digital video applications, such as broadcast digital TV, video transmission on the Internet and mobile networks, real-time conversation applications such as video chat and video conferencing, DVD and Blu-ray discs, video content acquisition and editing systems And security applications for camcorders.
  • Video coding standards include MPEG-1 video, MPEG-2 video, ITU-T H.262 / MPEG-2, ITU-T H.263, ITU-T H.264 / MPEG-4 Part 10 Advanced Video Coding (Advanced Video Coding (AVC), ITU-T H.265 / High Efficiency Video Coding (HEVC) ... and extensions to such standards, such as scalability and / or three-dimensional (3D) extensions.
  • AVC Advanced Video Coding
  • HEVC High Efficiency Video Coding
  • one of the goals of most video coding standards is to reduce the bit rate compared to previous standards without reducing the subjective quality of the picture.
  • HEVC High Efficiency Video Coding
  • VVC Very Video Coding
  • a frame of image will be divided into non-overlapping coding tree units (CTU), and the CTU size can be set to 64 ⁇ 64 or 128 ⁇ 128 size.
  • CTU non-overlapping coding tree units
  • a CTU is divided into one or more coding units (Coding Units, CU).
  • a CU contains basic coding information, including information such as prediction mode and transform coefficients.
  • the decoding end can perform corresponding prediction processing, inverse quantization, inverse transform, reconstruction, and filtering on the CU according to the encoded information to generate a reconstructed image corresponding to the CU.
  • a CU corresponds to a predicted image and a residual image, and the predicted image and the residual image are added to obtain a reconstructed image.
  • the predicted image is generated by intra prediction or inter prediction, and the residual image is generated by inverse quantization and inverse transform processing of the transform coefficients.
  • Inter prediction is a prediction technique based on motion compensation.
  • the main processing process is to determine the motion information of the current block, and obtain the reference image block from the reference frame of the current block according to the motion information to generate a predicted image of the current block.
  • a current block refers to an image block undergoing encoding / decoding processing, and the current block may be a luma block or a chroma block in a coding unit.
  • the motion information includes an inter prediction direction, a reference frame, a motion vector, and the like.
  • the inter prediction direction indicates which prediction direction is used by the current block in forward prediction, backward prediction, or bidirectional prediction.
  • the motion vector indicates the reference frame used for The displacement vector of the reference image block of the current block relative to the current block is predicted, so one motion vector corresponds to one reference frame.
  • Inter-prediction of an image block can generate a predicted image using only one motion vector and using pixels in a reference frame, which is called unidirectional prediction; it can also use two motion vectors to combine using pixels in two reference frames.
  • Generating a prediction image is called bidirectional prediction. That is, an image block can usually contain one or two motion vectors. For some multi-hypothesis inter prediction techniques, an image block may contain more than two motion vectors.
  • Inter-prediction indicates the reference frame (reference frame) by reference frame index (ref_idx), and indicates the reference block (reference block) of the current block (reference block) in the reference frame by the motion vector (motion vector (MV)).
  • a MV is a two-dimensional vector that contains horizontal and vertical displacement components.
  • An MV corresponds to two frames, each frame has a picture order number (POC), which is used to indicate the order in which the images are displayed. On the number, so a MV also corresponds to a POC difference.
  • the POC difference has a linear relationship with the time interval.
  • the scaling of the motion vector usually uses a scaling method based on the POC difference value to convert a motion vector between one pair of images into a motion vector between another pair of images.
  • AMVP mode Advanced Motion Vector Prediction: Identifies the inter prediction direction (forward, backward or bidirectional), reference frame index, motion vector prediction value index (motion vector) used by the current block in the code stream. predictor index (MVP index), motion vector residual value (MVD); reference frame queue used by inter prediction direction determination, reference frame index to determine the reference frame pointed to by the current block MV, and the motion vector prediction value The index indicates that one MVP in the MVP list is used as the predicted value of the current block MV, and one MVP and one MVD are added to obtain one MV.
  • merge / skip mode identify the merge index in the code stream, select a merge candidate from the merge candidate list according to the merge index, and the motion vector information of the current block (including the prediction direction and reference frame , Motion vector) is determined by this merge candidate.
  • merge mode implies that the current block has residual information, that is, the motion vector obtained from the motion candidate list is used as the motion vector prediction value of the current block, and the motion vector of the current block is determined by The predicted value of the motion vector is added to the residual value of the motion vector, and the residual of the motion vector is obtained by decoding the code stream; and the skip mode implies that the current block has no residual information (or the residual is 0), that is, from The motion vector obtained in the motion vector list is directly used as the motion vector of the current block for inter prediction; the two methods of deriving motion information are the same.
  • Affine transformation mode obtain the motion vector of each sub-block in the current block from the two or three control point motion vectors by affine transformation.
  • the fusion candidate can be the motion information of the image block adjacent to the current block, which is called spatial fusion candidate. It can also be the motion of the image block corresponding to the current block in another encoded image. Information is called temporal fusion candidate.
  • the fusion candidate can also be a bi-predictive merge candidate composed of the forward motion information of one fusion candidate and the backward motion information of another fusion candidate, or a motion vector force A zero motion vector fusion candidate that is a zero vector (zero motion vector merge candidate).
  • Step 1 Adding a spatial fusion candidate adjacent to the spatial domain of the current block to the fusion block candidate list of the current block, the method is the same as the method in HEVC.
  • the spatial fusion candidates of adjacent spatial domains are the motion information of blocks A, B, C, D, and E in FIG. 1, and their order of joining the fusion candidate list is A, B, C, D, and E.
  • the blocks A, B, C, ..., I in Fig. 1 are all 4x4 blocks.
  • Step 2 The temporal fusion candidate of the current block is added to the fusion candidate list of the current block, and the method is the same as the method in HEVC.
  • Step 3 Add non-adjacent spatial merge candidates that are not adjacent to the current block spatial domain to the fusion block candidate list of the current block.
  • Non-adjacent space fusion candidates are the motion information of A1, B1, C1, D1, E1, A2, B2, C2, D2, E2, F, G, H, I blocks in Figure 1; non-adjacent space fusion candidates
  • the order of joining the fusion candidate list is A1, B1, C1, D1, E1, F, G, H, I, A2, B2, C2, D2, E2.
  • the JVET-K0286 proposal also proposes that non-adjacent spatial fusion candidates only include motion information of A1, B1, C1, D1, E1, A2, B2, C2, D2, and E2 blocks.
  • Step 4 Add other types of fusion candidates, such as bi-predictive merge candidates and zero motion vector merge candidates.
  • the length of the fusion candidate list is a preset fixed value M, such as 6 or 8 or 10.
  • M a preset fixed value
  • the fusion candidate may not be added to the fusion candidate list to avoid duplicate fusion candidates appearing in the fusion candidate list, causing information redundancy.
  • JVET-K0339 uses more non-adjacent spatial fusion candidates, as shown in Figure 10.
  • blocks 1 to 5 are conventional spatial fusion candidates
  • blocks 6 to 48 are non-adjacent spatial fusion candidates.
  • the merge index is parsed from the code stream, and the fusion candidate corresponding to the merge index is selected from the fusion candidate list constructed by the above method to obtain the motion information of the current block.
  • Perform motion compensation according to the motion information of the current block to obtain a predicted image of the current block.
  • the prediction image of the current block is added to the residual image of the current block to obtain a reconstructed image of the current block, thereby completing decoding of the current block.
  • the number of non-adjacent spatial fusion candidates is large, and the length of the fusion candidate list is small.
  • the fusion candidate is added to the fusion candidate list during the process of adding the fusion candidate to the fusion candidate list. Filtering can improve the diversity of each fusion candidate in the fusion candidate list and their similarity with the current block motion information, thereby improving the prediction efficiency.
  • the method proposed in the above solution adds more non-adjacent spatial merge candidates to the fusion candidate list to determine whether to add non-believing spatial fusion candidates to the fusion candidate list.
  • the judgment rule is based on whether a non-adjacent spatial fusion candidate overlaps with a fusion candidate list that already exists in the fusion candidate list to determine whether to add this non-adjacent spatial fusion candidate to the fusion candidate list. This judgment method needs to be more complicated Comparison logic. If the maximum number of candidates allowed by the fusion candidate list is large, this comparison will take a long time to complete, thereby affecting the performance of the codec.
  • the motion information of non-adjacent spatial fusion candidates using skip / merge mode is easily duplicated or similar to the motion information of adjacent spatial fusion candidates, which is not conducive to improving the diversity of motion information in the fusion candidate list.
  • the non-adjacent spatial fusion candidate uses the affine model prediction mode and the current block uses the translation model prediction mode, these two regions have different motion types, so this non-adjacent spatial fusion candidate and the current block's
  • the relevance of actual motion information is low and should not be added to the fusion candidate list.
  • the present invention provides an efficient method and device for establishing a fusion candidate list, a codec method applying the method, and a codec device applying the device.
  • a first aspect of the present invention provides a method for constructing a fusion candidate list for performing inter prediction, which includes, when the neighboring block is available and the motion information of the neighboring block is related to the neighboring block at a specific position.
  • the motion information of the neighboring block is added as a spatial fusion candidate of the current block to the fusion candidate list of the current block; and based on the motion prediction mode of the non-adjacent block, Motion information of neighboring blocks of a specific prediction mode is excluded from the spatial fusion candidate list of the current block, that is, at least one of the non-neighboring blocks is judged to be non-phase when the non-neighboring block is available
  • the inter prediction mode of a neighboring block is not a predetermined inter prediction mode, and the motion information of the at least one non-adjacent block is the same as the motion information of an adjacent block or a non-adjacent block at a specific position, the at least one The motion information of a non-adjacent block
  • the non-adjacent block When the non-adjacent block is available, it is determined that the non-adjacent block is in the non-adjacent block. of At least one non-inter-prediction mode of adjacent blocks is predetermined inter prediction mode, not the at least one non-neighboring non-adjacent blocks added by the spatial candidate fusion integrated candidate list of the current block.
  • the present invention can remove fusion candidates that are not highly correlated with the current block's motion mode in the fusion candidate list, thereby having the opportunity to add more accurate and rich fusion candidates to the fusion candidate list, thereby improving Coding efficiency.
  • the method may further add a fusion candidate in a time domain to the fusion candidate list, and the fusion candidate in the time domain may preferably join a non-adjacent The spatial fusion candidate was previously added to the fusion candidate list.
  • the motion information of non-adjacent blocks that are not adjacent to the current block spatial domain is used as all before the non-adjacent spatial fusion candidate of the current block is added to the fusion candidate list of the current block, motion information of a neighboring block in a lower right corner of a co-located block in a reference frame of the current block is used as the current block.
  • Time-domain fusion candidates are added to the fusion candidate list, wherein the position of the co-located block in the reference frame is the same as the position of the current block in the current position, or in the lower right corner of the co-located block.
  • the motion information of the neighboring block is not available, the motion information of the center point of the co-located block is added to the fusion candidate list as a time-domain fusion candidate of the current block.
  • the second embodiment of the present invention if the number of fusion candidates in the fusion candidate list constructed by the method does not reach a predetermined In the case of the number, in order to make full use of the coding space provided by the fusion candidate list, other fusion candidates may be added to the fusion candidate list.
  • the method further includes: adding the bidirectional prediction fusion candidate to the fusion candidate list when the current block belongs to a bi-predictive slice.
  • the fusion candidate in the fusion candidate list If the number of participants does not reach the predetermined value, a zero motion vector fusion candidate is added to the fusion candidate list; or when the current block belongs to a uni-predictive slice, the motion is zero. A vector fusion candidate is added to the fusion candidate list.
  • the predetermined inter prediction mode is a skip / merge mode, a simulation Affine transform prediction mode, or the inter prediction mode is a skip / merge mode and an affine (Affine) transform prediction mode.
  • the above-mentioned specific prediction mode is not limited to the above-mentioned modes, and other inter-prediction modes, if the optical flow field mode can also be used as the above-mentioned predetermined inter-prediction mode.
  • the non-adjacent block performs an inter prediction mode determination, that is, only a non-adjacent block at a specific position is judged whether its inter prediction mode is the same as a predetermined inter prediction mode.
  • a second aspect of the present invention provides a decoding method, and applying the fusion candidate list constructed according to the first aspect of the present invention or the method in any of the first aspect of the present invention to the decoding process of the current block.
  • the decoding process includes: parsing a bitstream to obtain a fusion candidate index; obtaining a corresponding fusion candidate from the fusion candidate list according to the fusion candidate index, and using the fusion candidate as the current block's Motion information; performing inter prediction on the current block according to the motion information of the current block to obtain a predicted image of the current block; obtaining a residual image of the current block; combining the predicted image of the current block and the current block And adding the residual images to obtain a reconstructed image of the current block.
  • the decoding method provided by the second aspect of the present invention can effectively improve the decoding efficiency by using the fusion candidate list construction method provided by the first aspect of the present invention.
  • a third aspect of the present invention provides a coding method for constructing a fusion candidate list for inter prediction, which is constructed according to the first aspect of the present invention or the method in any embodiment of the first aspect of the present invention.
  • the fusion candidate list is applied to the encoding process of the current block, and the encoding process includes: performing an RDO-based fusion evaluation on the current block based on each fusion candidate in the fusion candidate list (Merge estimation) and use the fusion candidate with the lowest rate-distortion cost value as the motion information of the current block; encode the current block to form encoded data based on the motion information of the current block; and use the fusion candidate with the least rate-distortion cost value A position index of the person in the fusion candidate list is appended to the encoded data.
  • the decoding method provided by the third aspect of the present invention can effectively improve decoding efficiency by using the fusion candidate list construction method provided by the first aspect of the present invention.
  • the present invention also provides an encoding device and an encoding device corresponding to the second aspect of the present invention, and a decoding device corresponding to the third aspect of the present invention to a decoding device.
  • FIG. 1A is a block diagram of an example of a video encoding system for implementing an embodiment of the present invention
  • FIG. 1B is a block diagram illustrating an example of a video encoding system including any one or both of the encoder 20 of FIG. 2 and the decoder 30 of FIG. 3; FIG.
  • FIG. 2 is a block diagram showing an example structure of a video encoder for implementing an embodiment of the present invention
  • FIG. 3 is a block diagram showing an example structure of a video decoder for implementing an embodiment of the present invention
  • FIG. 4 is a block diagram of an example of an encoding device or a decoding device
  • FIG. 5 is a block diagram of an example of another encoding device or decoding device
  • FIG. 6 is a flowchart of an example operation of a video encoder according to an embodiment to implement the method for constructing a fusion candidate list of the present invention
  • FIG. 7 is a flowchart of a decoding method for a video encoder to decode based on a fusion candidate list constructed in FIG. 6 according to another embodiment
  • FIG. 8 is a flowchart of an encoding method for a video encoder to encode based on a fusion candidate list constructed in FIG. 6 according to another embodiment
  • FIG. 9 is a schematic diagram of the distribution of spatially adjacent and non-adjacent blocks
  • FIG. 10 is another schematic diagram of the distribution of spatially adjacent and non-adjacent blocks.
  • FIG. 11 is a schematic structural diagram of a device for constructing a fusion candidate athlete list according to an embodiment of the present application.
  • FIG. 12 is a schematic structural diagram of a decoding device according to an embodiment of the present application.
  • FIG. 13 is a schematic structural diagram of an encoding apparatus according to an embodiment of the present application.
  • FIGS. 6 to 8 are schematic diagrams of a device for implementing the methods in FIGS. 6 to 8 according to an embodiment of the present application;
  • the disclosure in connection with the described method may be equally applicable to a corresponding device or system for performing the method, and vice versa.
  • the corresponding device may include one or more units such as functional units to perform the described one or more method steps (e.g., one unit performs one or more steps Or multiple units, each of which performs one or more of the multiple steps), even if such one or more units are not explicitly described or illustrated in the drawings.
  • the corresponding method may include a step to perform the functionality of one or more units (e.g., a step performs one or more units Functionality, or multiple steps, where each performs the functionality of one or more of the multiple units), even if such one or more steps are not explicitly described or illustrated in the drawings.
  • a step performs one or more units Functionality, or multiple steps, where each performs the functionality of one or more of the multiple units
  • the features of the various exemplary embodiments and / or aspects described herein may be combined with each other, unless explicitly stated otherwise.
  • Video coding generally refers to processing a sequence of pictures that form a video or a video sequence.
  • picture In the field of video coding, the terms “picture”, “frame” or “image” can be used as synonyms.
  • Video encoding used in this application means video encoding or video decoding.
  • Video encoding is performed on the source side and typically involves processing (e.g., by compressing) the original video picture to reduce the amount of data required to represent the video picture (thus storing and / or transmitting more efficiently).
  • Video decoding is performed on the destination side and usually involves inverse processing relative to the encoder to reconstruct the video picture.
  • the video pictures (or collectively referred to as pictures, which will be explained below) referred to in the embodiments should be understood as “encoding” or “decoding” related to a video sequence.
  • the combination of the encoding part and the decoding part is also called codec (encoding and decoding).
  • the original video picture can be reconstructed, that is, the reconstructed video picture has the same quality as the original video picture (assuming there is no transmission loss or other data loss during storage or transmission).
  • further compression is performed by, for example, quantization to reduce the amount of data required to represent the video picture, and the decoder side cannot completely reconstruct the video picture, that is, the quality of the reconstructed video picture is compared to the original video picture The quality is lower or worse.
  • Each picture of a video sequence is usually partitioned into a set of non-overlapping blocks, usually encoded at the block level.
  • the encoder side usually processes at the block (video block) level, that is, encodes the video.
  • the prediction block is generated by spatial (intra-picture) prediction and temporal (inter-picture) prediction.
  • the encoder duplicates the decoder processing loop so that the encoder and decoder generate the same predictions (such as intra prediction and inter prediction) and / or reconstruction for processing, that is, encoding subsequent blocks.
  • the term "block” may be part of a picture or frame.
  • VVC Video Coding Experts Group
  • MPEG ISO / IEC Motion Picture Experts Group
  • High-Efficiency Video Coding (HEVC) developed by Video Coding (JCT-VC) describes embodiments of the present invention.
  • JCT-VC Video Coding
  • HEVC a CTU is split into multiple CUs by using a quad-tree structure represented as a coding tree.
  • Each CU can be further split into one, two or four PUs according to the PU split type. The same prediction process is applied within a PU, and related information is transmitted to the decoder on the basis of the PU.
  • a CU may be partitioned into a transform unit (TU) according to other quad-tree structures similar to a coding tree for a CU.
  • TU transform unit
  • quad-tree and binary-tree (QTBT) split frames are used to split coded blocks.
  • the CU may be a square or rectangular shape.
  • a coding tree unit (CTU) is first divided by a quad tree structure.
  • the quad leaf nodes are further partitioned by a binary tree structure.
  • Binary leaf nodes are called coding units (CUs), and the segments are used for prediction and transformation processing without any other segmentation.
  • CUs coding units
  • the segments are used for prediction and transformation processing without any other segmentation.
  • CUs coding units
  • the segments are used for prediction and transformation processing without any other segmentation.
  • the CU, PU, and TU have the same block size in the QTBT coded block structure.
  • FIG. 1A is a conceptual or schematic block diagram of an exemplary encoding system 10, for example, a video encoding system 10 that can utilize the technology of the present application (the present disclosure).
  • the encoder 20 e.g., video encoder 20
  • decoder 30 e.g., video decoder 30
  • the encoding system 10 includes a source device 12 for providing the encoded data 13, such as the encoded picture 13, to a destination device 14 that decodes the encoded data 13, for example.
  • the source device 12 includes an encoder 20, and in addition, optionally, may include a picture source 16, such as a pre-processing unit 18 of a picture pre-processing unit 18, and a communication interface or communication unit 22.
  • a picture source 16 such as a pre-processing unit 18 of a picture pre-processing unit 18, and a communication interface or communication unit 22.
  • the picture source 16 may include or may be any kind of picture capture device for, for example, capturing real-world pictures, and / or any kind of pictures or comments (for screen content encoding, some text on the screen is also considered to be a picture to be encoded Or a part of an image) generating device, for example, a computer graphics processor for generating computer animated pictures, or for obtaining and / or providing real world pictures, computer animated pictures (for example, screen content, virtual reality (VR) ) Pictures) of any type of device, and / or any combination thereof (eg, augmented reality (AR) pictures).
  • a computer graphics processor for generating computer animated pictures, or for obtaining and / or providing real world pictures, computer animated pictures (for example, screen content, virtual reality (VR) ) Pictures) of any type of device, and / or any combination thereof (eg, augmented reality (AR) pictures).
  • AR augmented reality
  • a (digital) picture is or can be regarded as a two-dimensional array or matrix of sampling points with luminance values.
  • the sampling points in the array may also be called pixels (short for picture element) or pixels.
  • the number of sampling points of the array or picture in the horizontal and vertical directions (or axes) defines the size and / or resolution of the picture.
  • three color components are usually used, that is, a picture can be represented as or contain three sampling arrays.
  • pictures include corresponding red, green, and blue sampling arrays.
  • each pixel is usually represented in a luma / chroma format or color space, for example, YCbCr, including the luma component indicated by Y (sometimes also indicated by L) and the two chroma indicated by Cb and Cr Weight.
  • Luma (abbreviated as luma) component Y represents luminance or gray level intensity (for example, both are the same in a grayscale picture), while two chroma (abbreviated as chroma) components Cb and Cr represent chroma or color information components .
  • a picture in the YCbCr format includes a luminance sampling array of luminance sampling values (Y), and two chrominance sampling arrays of chrominance values (Cb and Cr).
  • Y luminance sampling values
  • Cb and Cr chrominance sampling arrays of chrominance values
  • Pictures in RGB format can be converted or converted to YCbCr format and vice versa. This process is also called color conversion or conversion. If the picture is black and white, the picture can include only an array of luminance samples.
  • the picture source 16 may be, for example, a camera for capturing pictures, such as a memory of a picture memory, including or storing a previously captured or generated picture, and / or any category (internal Or external) interface.
  • the camera may be, for example, an integrated camera that is local or integrated in the source device, and the memory may be local or, for example, an integrated memory that is integrated in the source device.
  • the interface may be, for example, an external interface for receiving pictures from an external video source.
  • the external video source is, for example, an external picture capture device, such as a camera, an external memory, or an external picture generation device.
  • the external picture generation device is, for example, an external computer graphics processor, a computer. Or server.
  • the interface may be any type of interface according to any proprietary or standardized interface protocol, such as a wired or wireless interface, an optical interface.
  • the interface for acquiring the picture data 17 may be the same interface as the communication interface 22 or a part of the communication interface 22.
  • a picture or picture data 17 (for example, video data 16) may also be referred to as an original picture or original picture data 17.
  • the pre-processing unit 18 is configured to receive (original) picture data 17 and perform pre-processing on the picture data 17 to obtain pre-processed pictures 19 or pre-processed picture data 19.
  • the pre-processing performed by the pre-processing unit 18 may include trimming, color format conversion (for example, conversion from RGB to YCbCr), color correction, or denoising. It is understood that the pre-processing unit 18 may be an optional component.
  • An encoder 20 (eg, video encoder 20) is used to receive the pre-processed picture data 19 and provide the encoded picture data 21 (details will be further described below, for example, based on FIG. 2 or FIG. 4).
  • the encoder 20 may be configured to add motion information of a neighboring block adjacent to the current block spatial domain as a spatial fusion candidate of the current block to the fusion of the current block based on a preset first selection rule.
  • the preset first selection rule includes, when the neighboring block is available and the motion information of the neighboring block is different from the motion information of the neighboring block at a specific position, then The motion information of the neighboring block is added as a spatial fusion candidate of the current block to the fusion candidate list of the current block; and based on a preset second selection rule, it will not be adjacent to the current block spatial domain
  • the motion information of the non-adjacent block is added as a non-adjacent spatial fusion candidate of the current block to the fusion candidate list, wherein the current block has one or more of the non-adjacent spatial domains that are not adjacent Block
  • the preset second selection rule includes: when the non-adjacent block is available, determining that an inter prediction mode of at least one non-adjacent block in the non-adjacent block is not a predetermined inter-frame Advance When the motion information of the at least one non-adjacent block is the same as the motion information of the adjacent block or the non-a
  • the communication interface 22 of the source device 12 can be used to receive the encoded picture data 21 and transmit it to other devices, such as the destination device 14 or any other device, for storage or direct reconstruction, or for correspondingly storing the
  • the encoded data 13 and / or the encoded picture data 21 are processed before transmitting the encoded data 13 to other devices, such as the destination device 14 or any other device for decoding or storage.
  • the destination device 14 includes a decoder 30 (for example, a video decoder 30), and in addition, optionally, it may include a communication interface or communication unit 28, a post-processing unit 32, and a display device 34.
  • a decoder 30 for example, a video decoder 30
  • the communication interface 28 of the destination device 14 is used, for example, to receive the encoded picture data 21 or the encoded data 13 directly from the source device 12 or any other source.
  • Any other source is, for example, a storage device, and the storage device is, for example, encoded picture data storage. device.
  • the communication interface 22 and the communication interface 28 can be used for direct communication through a direct communication link between the source device 12 and the destination device 14 or transmission or reception of encoded picture data 21 or encoded data 13 through any type of network
  • the link is, for example, a direct wired or wireless connection, and any type of network is, for example, a wired or wireless network or any combination thereof, or any type of private and public network, or any combination thereof.
  • the communication interface 22 may be used, for example, to encapsulate the encoded picture data 21 into a suitable format, such as a packet, for transmission over a communication link or communication network.
  • the communication interface 28 forming a corresponding part of the communication interface 22 may be used, for example, to decapsulate the encoded data 13 to obtain the encoded picture data 21.
  • Both the communication interface 22 and the communication interface 28 may be configured as unidirectional communication interfaces, as indicated by the arrows for the encoded picture data 13 from the source device 12 to the destination device 14 in FIG. 1A, or configured as bidirectional communication interfaces, and It can be used, for example, to send and receive messages to establish a connection, acknowledge, and exchange any other information related to a communication link and / or data transmission such as encoded picture data transmission.
  • the decoder 30 is configured to receive the encoded picture data 21 and provide the decoded picture data 31 or the decoded picture 31 (details will be further described below, for example, based on FIG. 3 or FIG. 5).
  • the decoder 30 may be configured to decode the data encoded by the encoder. Specifically, the decoder 30 may parse a bitstream to obtain a fusion candidate index, and obtain a corresponding one from the fusion candidate list according to the fusion candidate index. And use the fusion candidate as the motion information of the current block; perform inter prediction on the current block according to the motion information of the current block to obtain a predicted image of the current block; and acquire the current image of the current block. A residual image; adding the predicted image of the current block and the residual image of the current block to obtain a reconstructed image of the current block.
  • the post-processor 32 of the destination device 14 is used to post-process decoded picture data 31 (also referred to as reconstructed picture data), for example, decoded picture 131 to obtain post-processed picture data 33, for example, post-processed Picture 33.
  • the post-processing performed by the post-processing unit 32 may include, for example, color format conversion (e.g., conversion from YCbCr to RGB), color correction, retouching, or resampling, or any other processing, such as preparing the decoded picture data 31 to be processed by
  • the display device 34 displays it.
  • the display device 34 of the destination device 14 is used to receive the post-processed picture data 33 to display a picture to, for example, a user or a viewer.
  • the display device 34 may be or may include any kind of display for presenting a reconstructed picture, such as an integrated or external display or monitor.
  • the display may include a liquid crystal display (LCD), an organic light emitting diode (OLED) display, a plasma display, a projector, a micro LED display, a liquid crystal on silicon (LCoS), Digital light processor (DLP) or any other display of any kind.
  • FIG. 1A illustrates the source device 12 and the destination device 14 as separate devices
  • the device embodiment may also include the source device 12 and the destination device 14 or both of the functionality, that is, the source device 12 or corresponding And the functionality of the destination device 14 or equivalent.
  • the same hardware and / or software, or separate hardware and / or software, or any combination thereof may be used to implement the source device 12 or corresponding functionality and the destination device 14 or corresponding functionality .
  • Both the encoder 20 e.g., video encoder 20
  • decoder 30 e.g., video decoder 30
  • DSP digital signal processors
  • ASIC application-specific integrated circuit
  • FPGA field-programmable gate array
  • the device may store the software's instructions in a suitable non-transitory computer-readable storage medium and may use one or more processors to execute the instructions in hardware to perform the techniques of the present disclosure . Any one of the foregoing (including hardware, software, a combination of hardware and software, etc.) can be considered as one or more processors.
  • Each of the video encoder 20 and the video decoder 30 may be included in one or more encoders or decoders, and any of the encoders or decoders may be integrated as a combined encoder / decoder in a corresponding device (Codec).
  • the source device 12 may be referred to as a video encoding device or a video encoding device.
  • the destination device 14 may be referred to as a video decoding device or a video decoding device.
  • the source device 12 and the destination device 14 may be examples of a video encoding device or a video encoding apparatus.
  • Source device 12 and destination device 14 may include any of a variety of devices, including any type of handheld or stationary device, such as a notebook or laptop computer, mobile phone, smartphone, tablet or tablet computer, video camera, desktop Computer, set-top box, TV, display device, digital media player, video game console, video streaming device (such as content service server or content distribution server), broadcast receiver device, broadcast transmitter device, etc., and may not be used Or use any kind of operating system.
  • a notebook or laptop computer mobile phone, smartphone, tablet or tablet computer, video camera, desktop Computer, set-top box, TV, display device, digital media player, video game console, video streaming device (such as content service server or content distribution server), broadcast receiver device, broadcast transmitter device, etc., and may not be used Or use any kind of operating system.
  • source device 12 and destination device 14 may be equipped for wireless communication. Therefore, the source device 12 and the destination device 14 may be wireless communication devices.
  • the video encoding system 10 shown in FIG. 1A is merely an example, and the techniques of this application may be applicable to video encoding settings (eg, video encoding or video decoding) that do not necessarily include any data communication between encoding and decoding devices.
  • data may be retrieved from local storage, streamed over a network, and the like.
  • the video encoding device may encode the data and store the data to a memory, and / or the video decoding device may retrieve the data from the memory and decode the data.
  • encoding and decoding are performed by devices that do not communicate with each other, but only encode data to and / or retrieve data from memory and decode data.
  • video decoder 30 may be used to perform the reverse process.
  • video decoder 30 may be used to receive and parse such syntax elements, and decode related video data accordingly.
  • the video encoder 20 may add one or more syntax elements that define the specific position of the fusion candidate in the fusion candidate list and the syntax element of the inter-coding type of the spatial non-adjacent block of the current block. Entropy coded into an encoded video bitstream. In such examples, video decoder 30 may parse such syntax elements and decode related video data accordingly.
  • FIG. 1B is an explanatory diagram of an example of a video encoding system 40 including the encoder 20 of FIG. 2 and / or the decoder 30 of FIG. 3 according to an exemplary embodiment.
  • the system 40 can implement the technology of the present application for constructing a fusion candidate list of the current block based on the fusion candidate construction method proposed by the present invention, and encode or decode an image based on the fusion candidate list.
  • the video encoding system 40 may include an imaging device 41, a video encoder 20, a video decoder 30 (and / or a video encoder implemented by the logic circuit 47 of the processing unit 46), an antenna 42, One or more processors 43, one or more memories 44, and / or a display device 45.
  • the imaging device 41, antenna 42, processing unit 46, logic circuit 47, video encoder 20, video decoder 30, processor 43, memory 44, and / or display device 45 can communicate with each other.
  • video encoding system 40 is shown with video encoder 20 and video decoder 30, in different examples, video encoding system 40 may include only video encoder 20 or only video decoder 30.
  • the video encoding system 40 may include an antenna 42.
  • the antenna 42 may be used to transmit or receive an encoded bit stream of video data.
  • the video encoding system 40 may include a display device 45.
  • the display device 45 may be used to present video data.
  • the logic circuit 47 may be implemented by the processing unit 46.
  • the processing unit 46 may include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, and the like.
  • the video encoding system 40 may also include an optional processor 43, which may similarly include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, and the like.
  • ASIC application-specific integrated circuit
  • the logic circuit 47 may be implemented by hardware, such as dedicated hardware for video encoding, and the processor 43 may be implemented by general software, operating system, and the like.
  • the memory 44 may be any type of memory, such as volatile memory (e.g., Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), etc.) or non-volatile memory Memory (for example, flash memory, etc.).
  • the memory 44 may be implemented by a cache memory.
  • the logic circuit 47 may access the memory 44 (eg, for implementing an image buffer).
  • the logic circuit 47 and / or the processing unit 46 may include a memory (eg, a cache, etc.) for implementing an image buffer or the like.
  • video encoder 20 implemented by logic circuits may include an image buffer (eg, implemented by processing unit 46 or memory 44) and a graphics processing unit (eg, implemented by processing unit 46).
  • the graphics processing unit may be communicatively coupled to the image buffer.
  • the graphics processing unit may include a video encoder 20 implemented by a logic circuit 47 to implement the various modules discussed with reference to FIG. 2 and / or any other encoder system or subsystem described herein.
  • Logic circuits can be used to perform various operations discussed herein.
  • Video decoder 30 may be implemented in a similar manner by logic circuit 47 to implement the various modules discussed with reference to decoder 30 of FIG. 3 and / or any other decoder system or subsystem described herein.
  • video decoder 30 implemented by a logic circuit may include an image buffer (implemented by processing unit 2820 or memory 44) and a graphics processing unit (eg, implemented by processing unit 46).
  • the graphics processing unit may be communicatively coupled to the image buffer.
  • the graphics processing unit may include a video decoder 30 implemented by a logic circuit 47 to implement various modules discussed with reference to FIG. 3 and / or any other decoder system or subsystem described herein.
  • the antenna 42 of the video encoding system 40 may be used to receive an encoded bit stream of video data.
  • the encoded bitstream may contain data, indicators, index values, mode selection data, etc. related to encoded video frames discussed herein, such as data related to coded segmentation (e.g., transform coefficients or quantized transform coefficients) , (As discussed) optional indicators, and / or data defining code partitions).
  • the video encoding system 40 may also include a video decoder 30 coupled to the antenna 42 and used to decode the encoded bitstream.
  • the display device 45 is used to present video frames.
  • FIG. 2 shows a schematic / conceptual block diagram of an example of a video encoder 20 for implementing the techniques of the present invention.
  • the video encoder 20 includes a residual calculation unit 204, a transformation processing unit 206, a quantization unit 208, an inverse quantization unit 210, an inverse transformation processing unit 212, a reconstruction unit 214, a buffer 216, and a loop filter.
  • the prediction processing unit 260 may include an inter prediction unit 244, an intra prediction unit 254, and a mode selection unit 262.
  • the inter prediction unit 244 may include a motion estimation unit and a motion compensation unit (not shown).
  • the video encoder 20 shown in FIG. 2 may also be referred to as a hybrid video encoder or a video encoder according to a hybrid video codec.
  • the residual calculation unit 204, the transformation processing unit 206, the quantization unit 208, the prediction processing unit 260, and the entropy encoding unit 270 form the forward signal path of the encoder 20, while the inverse quantization unit 210, the inverse transformation processing unit 212,
  • the constructing unit 214, the buffer 216, the loop filter 220, the decoded picture buffer (DPB) 230, and the prediction processing unit 260 form a backward signal path of the encoder, wherein the backward signal path of the encoder corresponds to To the decoder's signal path (see decoder 30 in Figure 3).
  • the encoder 20 receives a picture 201 or a block 203 of the picture 201 through, for example, an input 202, for example, a picture in a picture sequence forming a video or a video sequence.
  • the picture block 203 can also be called the current picture block or the picture block to be encoded
  • the picture 201 can be called the current picture or the picture to be encoded (especially when the current picture is distinguished from other pictures in video encoding, other pictures such as the same video sequence (Ie previously encoded and / or decoded pictures in the video sequence of the current picture).
  • An embodiment of the encoder 20 may include a segmentation unit (not shown in FIG. 2) for segmenting the picture 201 into multiple blocks, such as the block 203, and generally into multiple non-overlapping blocks.
  • the segmentation unit can be used to use the same block size and corresponding raster to define the block size for all pictures in the video sequence, or to change the block size between pictures or subsets or groups of pictures, and split each picture into Corresponding block.
  • VVC the block structure for the next generation of video coding was introduced by J. An et al.
  • quad-tree-binary-tree (QTBT) partitioning technique proposed in "VCEG Recommendation COM16-C966"
  • simulations have shown that the proposed QTBT structure is more than the quad-tree structure in the HEVC used Efficient.
  • the CU can have a square or rectangular shape.
  • the coding tree unit (CTU) is first divided by the quad tree structure.
  • the quad leaf nodes can further pass the binary tree structure Dividing.
  • partitioning in binary tree partitioning There are two types of partitioning in binary tree partitioning: symmetrical horizontal partitioning and symmetrical vertical partitioning.
  • the nodes are divided by dividing the nodes horizontally or vertically along the middle.
  • Binary leaf nodes are called coding units (coding unit, CU), and the prediction and transformation processes without any further division.
  • CU, PU, and TU have the same block in the QTBT coding block structure Size.
  • a CU is sometimes composed of coding blocks (CBs) with different color components.
  • CBs coding blocks
  • P and B slices in 4: 2: 0 chroma format one CU contains one luminance CB and two Chroma CB
  • CUs are sometimes composed of CBs with a single component, for example, in the case of I-strips, one CU contains only one luminance CB or only two chroma CBs.
  • U.S. Patent Application Publication No. 20170208336 proposes a block division structure called a multi-type-tree (MTT) instead of a CU structure based on QT, BT, and / or QTBT.
  • the MTT partition structure is still a recursive tree structure.
  • a plurality of different partition structures (for example, three or more) are used.
  • three or more different partition structures may be used at each depth of the tree structure for each corresponding non-leaf node of the tree structure.
  • the depth of a node in the tree structure may refer to the length (eg, the number of divisions) of a path from the node to the root of the tree structure.
  • a partition structure may generally refer to how many different blocks a block can be divided into.
  • the partition structure can be a quad tree partition structure that can divide a block into four blocks, a binary tree partition structure that can divide a block into two blocks, or a triple tree partition structure that can divide a block into three blocks.
  • the tri-tree The partition structure may not be divided by the center.
  • the partition structure can have multiple different partition types.
  • the division type may additionally define how to divide the block, including symmetrical or asymmetrical division, uniform or uneven division, and / or horizontal or vertical division.
  • the encoder 100 may be used to further divide the subtree using a particular partition type of one of the three further partition structures.
  • the encoder 100 may be used to determine specific partition types from QT, BT, triple-tree (TT), and other partition structures.
  • the QT partition structure may include a square quadtree or a rectangular quadtree partition type.
  • the encoder 100 may use a square quadtree partition to divide a square block by dividing the block horizontally and vertically along the center into four square blocks of equal size.
  • the encoder 100 may use a rectangular quadtree partition to divide a rectangular (eg, non-square) block by dividing the rectangular block horizontally and vertically along the center into four equal-sized rectangular blocks.
  • the BT partition structure may include at least one of a horizontally symmetric binary tree, a vertically symmetric binary tree, a horizontally asymmetric binary tree, or a vertically asymmetric binary tree partition type.
  • the encoder 100 may be used to horizontally divide a block horizontally into two symmetrical blocks of the same size along the center of the block.
  • the encoder 100 may be used to bisect a block vertically into two symmetrical blocks of the same size along the center of the block.
  • the encoder 100 may be used to horizontally divide a block into two blocks of different sizes.
  • one block may be 1/4 of the size of the parent block, while another block may be 3/4 of the size of the parent block, similar to the PART_2N ⁇ nU or PART_2N ⁇ nD partition type.
  • the encoder 100 may be used to vertically divide a block into two blocks of different sizes.
  • one block may be 1/4 of the size of the parent block, and another block may be 3/4 of the size of the parent block, similar to the PART_nL ⁇ 2N or PART_nR ⁇ 2N partition type.
  • the asymmetric binary tree partition type may divide the parent block into sections of different sizes.
  • one child block may be 3/8 of the parent block, and the other child block may be 5/8 of the parent block.
  • this type of division can be vertical or horizontal.
  • the difference between the TT partition structure and the type of the QT or BT structure is that the TT partition structure does not partition the blocks along the center. The center areas of the blocks are kept together in the same sub-block. Different from the QT generating four blocks or the binary tree generating two blocks, three blocks are generated according to the division of the TT partition structure.
  • Example partition types according to the TT partition structure include symmetric partition types (both horizontal and vertical) and asymmetric partition types (both horizontal and vertical).
  • the symmetric partition type according to the TT partition structure may be uneven / uneven or equal / uniform.
  • the asymmetric partition type according to the TT partition structure is uneven / uneven.
  • the TT partition structure may include at least one of the following partition types: level equal / uniformly symmetrical tri-tree, vertical equal / uniformly symmetrical tri-tree, horizontally uneven / uniformly symmetrical tri-tree, vertical uneven / Uneven symmetrical tri-tree, horizontal uneven / uneven asymmetric tri-tree, or vertical uneven / uneven asymmetric tri-tree partition type
  • the unequal / unsymmetric symmetric tri-tree partition type is a partition type that is symmetrical around the center line of the block but has at least one of the three blocks obtained with a size different from the other two.
  • a preferred example is where the side block is 1/4 of the block size and the center block is 1/2 of the block size.
  • the equal / uniform symmetrical tri-tree partition type is a partition type that is symmetrical around the center line of the block and the size of the resulting block is all the same. This type of division is possible if the block height or width-depending on the vertical or horizontal division-is an integer multiple of three.
  • the uneven / uneven asymmetric tri-tree partition type is a partition type that is not symmetrical around the center line of the block and wherein at least one of the resulting blocks is not the same size as the other two.
  • the prediction processing unit 260 of the video encoder 20 may be used to perform any combination of the aforementioned segmentation techniques.
  • block 203 is also or can be regarded as a two-dimensional array or matrix of sampling points with brightness values (sampling values), although its size is smaller than picture 201.
  • block 203 may include, for example, one sampling array (e.g., a luminance array in the case of a black and white picture 201) or three sampling arrays (e.g., one luminance array and two chroma arrays in the case of a color picture) or a basis An array of any other number and / or category of color formats applied.
  • the number of sampling points in the horizontal and vertical directions (or axes) of the block 203 defines the size of the block 203.
  • the encoder 20 shown in FIG. 2 is used to encode a picture 201 block by block, for example, performing encoding and prediction on each block 203.
  • the residual calculation unit 204 is configured to calculate the residual block 205 based on the picture block 203 and the prediction block 265 (the other details of the prediction block 265 are provided below). For example, the sample value of the picture block 203 is subtracted from the prediction by sample by pixel (pixel by pixel). Sample values of block 265 to obtain residual block 205 in the sample domain.
  • the transform processing unit 206 is configured to apply a transform such as discrete cosine transform (DCT) or discrete sine transform (DST) on the sample values of the residual block 205 to obtain transform coefficients 207 in the transform domain.
  • a transform such as discrete cosine transform (DCT) or discrete sine transform (DST)
  • DCT discrete cosine transform
  • DST discrete sine transform
  • the transform coefficient 207 may also be referred to as a transform residual coefficient, and represents a residual block 205 in a transform domain.
  • the transform processing unit 206 may be used to apply an integer approximation of DCT / DST, such as the transform specified for HEVC / H.265. Compared to an orthogonal DCT transform, this integer approximation is usually scaled by a factor. To maintain the norm of the residual blocks processed by the forward and inverse transforms, an additional scaling factor is applied as part of the transform process.
  • the scaling factor is usually selected based on certain constraints, for example, the scaling factor is a power of two used for shift operations, the bit depth of the transform coefficients, the trade-off between accuracy, and implementation cost.
  • a specific scaling factor is specified on the decoder 30 side by, for example, the inverse transform processing unit 212 (and on the encoder 20 side by, for example, the inverse transform processing unit 212 as the corresponding inverse transform), and accordingly, the The 20 side specifies a corresponding scaling factor for the positive transformation through the transformation processing unit 206.
  • the quantization unit 208 is used to quantize the transform coefficients 207, for example, by applying scalar quantization or vector quantization to obtain the quantized transform coefficients 209.
  • the quantized transform coefficient 209 may also be referred to as a quantized residual coefficient 209.
  • the quantization process can reduce the bit depth associated with some or all of the transform coefficients 207. For example, n-bit transform coefficients may be rounded down to m-bit transform coefficients during quantization, where n is greater than m.
  • the degree of quantization can be modified by adjusting the quantization parameter (QP). For scalar quantization, for example, different scales can be applied to achieve finer or coarser quantization.
  • a smaller quantization step size corresponds to a finer quantization, while a larger quantization step size corresponds to a coarser quantization.
  • An appropriate quantization step size can be indicated by a quantization parameter (QP).
  • the quantization parameter may be an index of a predefined set of suitable quantization steps.
  • smaller quantization parameters may correspond to fine quantization (smaller quantization step size)
  • larger quantization parameters may correspond to coarse quantization (larger quantization step size)
  • Quantization may include division by a quantization step size and corresponding quantization or inverse quantization performed, for example, by inverse quantization 210, or may include multiplication by a quantization step size.
  • Embodiments according to some standards such as HEVC may use quantization parameters to determine the quantization step size.
  • the quantization step size can be calculated using a fixed-point approximation using an equation containing division based on the quantization parameter. Additional scaling factors may be introduced for quantization and inverse quantization to restore the norm of the residual block that may be modified due to the scale used in the fixed-point approximation of the equation for the quantization step size and quantization parameter.
  • inverse transform and inverse quantization scales can be combined.
  • a custom quantization table can be used and signaled from the encoder to the decoder in, for example, a bitstream. Quantization is a lossy operation, where the larger the quantization step, the greater the loss.
  • the inverse quantization unit 210 is used to apply the inverse quantization of the quantization unit 208 on the quantized coefficients to obtain the inverse quantized coefficients 211. For example, based on or using the same quantization step size as the quantization unit 208, the quantization scheme applied by the quantization unit 208 is applied. Inverse quantization scheme.
  • the dequantized coefficient 211 may also be referred to as a dequantized residual coefficient 211, which corresponds to the transform coefficient 207, although the loss due to quantization is usually different from the transform coefficient.
  • the inverse transform processing unit 212 is used to apply an inverse transform of the transform applied by the transform processing unit 206, for example, an inverse discrete cosine transform (DCT) or an inverse discrete sine transform (DST), in the sample domain.
  • DCT inverse discrete cosine transform
  • DST inverse discrete sine transform
  • the inverse transform block 213 may also be referred to as an inverse transform inverse quantized block 213 or an inverse transform residual block 213.
  • the reconstruction unit 214 (for example, the summer 214) is used to add the inverse transform block 213 (that is, the reconstructed residual block 213) to the prediction block 265 to obtain the reconstructed block 215 in the sample domain.
  • the sample values of the reconstructed residual block 213 are added to the sample values of the prediction block 265.
  • a buffer unit 216 (or simply "buffer" 216), such as a line buffer 216, is used to buffer or store the reconstructed block 215 and corresponding sample values, for example, for intra prediction.
  • the encoder may be used to use any unfiltered reconstructed block and / or corresponding sample values stored in the buffer unit 216 for any category of estimation and / or prediction, such as intra-frame prediction.
  • an embodiment of the encoder 20 may be configured such that the buffer unit 216 is used not only for storing the reconstructed block 215 for intra prediction 254, but also for the loop filter unit 220 (not shown in FIG. 2). Out), and / or, for example, to make the buffer unit 216 and the decoded picture buffer unit 230 form a buffer.
  • Other embodiments may be used to use the filtered block 221 and / or blocks or samples from the decoded picture buffer 230 (neither shown in FIG. 2) as the input or basis for the intra prediction 254.
  • the loop filter unit 220 (or simply "loop filter” 220) is configured to filter the reconstructed block 215 to obtain the filtered block 221, so as to smoothly perform pixel conversion or improve video quality.
  • the loop filter unit 220 is intended to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or other filters, such as a bilateral filter, Adaptive loop filters (adaptive loop filters, ALF), or sharpening or smoothing filters, or cooperative filters.
  • the loop filter unit 220 is shown as an in-loop filter in FIG. 2, in other configurations, the loop filter unit 220 may be implemented as a post-loop filter.
  • the filtered block 221 may also be referred to as a filtered reconstructed block 221.
  • the decoded picture buffer 230 may store the reconstructed encoded block after the loop filter unit 220 performs a filtering operation on the reconstructed encoded block.
  • An embodiment of the encoder 20 may be used to output loop filter parameters (e.g., sample adaptive offset information), for example, directly output or by the entropy coding unit 270 or any other
  • the entropy coding unit outputs after entropy coding, for example, so that the decoder 30 can receive and apply the same loop filter parameters for decoding.
  • the decoded picture buffer (DPB) 230 may be a reference picture memory that stores reference picture data for the video encoder 20 to encode video data.
  • DPB 230 can be formed by any of a variety of memory devices, such as dynamic random access (DRAM) (including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), and resistive RAM (resistive RAM, RRAM)) or other types of memory devices.
  • DRAM dynamic random access
  • SDRAM synchronous DRAM
  • MRAM magnetoresistive RAM
  • RRAM resistive RAM
  • the DPB 230 and the buffer 216 may be provided by the same memory device or separate memory devices.
  • a decoded picture buffer (DPB) 230 is used to store the filtered block 221.
  • the decoded picture buffer 230 may be further used to store other previous filtered blocks of the same current picture or different pictures such as previously reconstructed pictures, such as the previously reconstructed and filtered block 221, and may provide a complete previous Reconstruction is the decoded picture (and corresponding reference blocks and samples) and / or part of the reconstructed current picture (and corresponding reference blocks and samples), for example for inter prediction.
  • a decoded picture buffer (DPB) 230 is used to store the reconstructed block 215.
  • Prediction processing unit 260 also referred to as block prediction processing unit 260, is used to receive or obtain block 203 (current block 203 of current picture 201) and reconstructed picture data, such as a reference to the same (current) picture from buffer 216 Samples and / or reference picture data 231 from one or more previously decoded pictures from the decoded picture buffer 230, and used to process such data for prediction, i.e., may be provided as inter-predicted blocks 245 or intra- Prediction block 265 of prediction block 255.
  • the mode selection unit 262 may be used to select a prediction mode (such as an intra or inter prediction mode) and / or a corresponding prediction block 245 or 255 used as the prediction block 265 to calculate the residual block 205 and reconstruct the reconstructed block 215.
  • a prediction mode such as an intra or inter prediction mode
  • a corresponding prediction block 245 or 255 used as the prediction block 265 to calculate the residual block 205 and reconstruct the reconstructed block 215.
  • An embodiment of the mode selection unit 262 may be used to select a prediction mode (e.g., selected from those prediction modes supported by the prediction processing unit 260) that provides the best match or minimum residual (minimum residual means Better compression in transmission or storage), or provide minimal signaling overhead (minimum signaling overhead means better compression in transmission or storage), or consider or balance both.
  • the mode selection unit 262 may be used to determine a prediction mode based on rate distortion optimization (RDO), that is, to select a prediction mode that provides the minimum code rate distortion optimization, or to select a prediction mode whose related code rate distortion meets the prediction mode selection criteria .
  • RDO rate distortion optimization
  • the encoder 20 is used to determine or select the best or optimal prediction mode from a set of (predetermined) prediction modes.
  • the prediction mode set may include, for example, an intra prediction mode and / or an inter prediction mode.
  • the set of intra prediction modes may include 35 different intra prediction modes, for example, non-directional modes such as DC (or average) mode and planar mode, or directional modes as defined in H.265, or may include 67 Different intra prediction modes, such as non-directional modes such as DC (or mean) mode and planar mode, or directional modes as defined in the developing H.266.
  • the set of (possible) inter prediction modes depends on the available reference pictures (i.e., at least part of the decoded pictures previously stored in DBP 230) and other inter prediction parameters, such as whether to use the entire reference picture or only the reference A part of the picture, such as a search window area surrounding the area of the current block, searches for the best matching reference block, and / or depends on, for example, whether pixel interpolation such as half-pixel and / or quarter-pixel interpolation is applied.
  • a skip mode and / or a direct mode can also be applied.
  • the prediction processing unit 260 may be further configured to divide the block 203 into smaller block partitions or sub-blocks, for example, using a quad-tree (QT) partition, a binary-tree (BT) partition, or Triple-tree (TT) segmentation, or any combination thereof, and for performing predictions, for example, for each of block partitions or sub-blocks, where the mode selection includes selecting the tree structure of the partitioned block 203 and the selection applied to the block The prediction mode for each of the partitions or sub-blocks.
  • QT quad-tree
  • BT binary-tree
  • TT Triple-tree
  • the inter prediction unit 244 may include a motion estimation (ME) unit (not shown in FIG. 2) and a motion compensation (MC) unit (not shown in FIG. 2).
  • the motion estimation unit is configured to receive or obtain picture block 203 (current picture block 203 of current picture 201) and decoded picture 231, or at least one or more previously reconstructed blocks, for example, one or more other / different previous
  • the reconstructed block of picture 231 is decoded for motion estimation.
  • the video sequence may include the current picture and the previously decoded picture 31, or in other words, the current picture and the previously decoded picture 31 may be part of the picture sequence forming the video sequence or form the picture sequence.
  • the construction of the fusion candidate list of the present application can be implemented by the motion estimation module.
  • the encoder 20 may be used to select a reference block from multiple reference blocks of the same or different pictures in multiple other pictures, and provide a reference picture (or reference picture index) to a motion estimation unit (not shown in FIG. 2). ...) and / or provide an offset (spatial offset) between the position (X, Y coordinates) of the reference block and the position of the current block as an inter prediction parameter.
  • This offset is also called a motion vector (MV).
  • the motion compensation unit is used for obtaining, for example, receiving inter prediction parameters, and performing inter prediction based on or using the inter prediction parameters to obtain the inter prediction block 245.
  • Motion compensation performed by a motion compensation unit may include taking out or generating a prediction block based on a motion / block vector determined through motion estimation (possibly performing interpolation on sub-pixel accuracy). Interpolation filtering can generate additional pixel samples from known pixel samples, potentially increasing the number of candidate prediction blocks that can be used to encode picture blocks.
  • the motion compensation unit 246 may locate the prediction block pointed to by the motion vector in a reference picture list.
  • Motion compensation unit 246 may also generate syntax elements associated with blocks and video slices for use by video decoder 30 when decoding picture blocks of video slices.
  • the intra prediction unit 254 is configured to obtain, for example, a picture block 203 (current picture block) and one or more previously reconstructed blocks, such as reconstructed neighboring blocks, that receive the same picture for intra estimation.
  • the encoder 20 may be used to select an intra prediction mode from a plurality of (predetermined) intra prediction modes.
  • Embodiments of the encoder 20 may be used to select an intra prediction mode based on optimization criteria, such as based on a minimum residual (e.g., an intra prediction mode that provides a prediction block 255 that is most similar to the current picture block 203) or a minimum code rate distortion ( E.g administrat).
  • a minimum residual e.g., an intra prediction mode that provides a prediction block 255 that is most similar to the current picture block 203
  • a minimum code rate distortion E.g.
  • the intra prediction unit 254 is further configured to determine the intra prediction block 255 based on the intra prediction parameters of the intra prediction mode as selected. In any case, after selecting the intra prediction mode for the block, the intra prediction unit 254 is further configured to provide the intra prediction parameters to the entropy encoding unit 270, that is, to provide an indication of the selected intra prediction mode for the block. Information. In one example, the intra prediction unit 254 may be used to perform any combination of intra prediction techniques described below.
  • the entropy coding unit 270 is configured to apply an entropy coding algorithm or scheme (for example, a variable length coding (VLC) scheme, a context adaptive VLC (context adaptive VLC, CAVLC) scheme, an arithmetic coding scheme, and a context adaptive binary arithmetic Coding (context, adaptive binary coding, CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE) coding, or other entropy Encoding method or technique) applied to one or all of the quantized residual coefficients 209, inter prediction parameters, intra prediction parameters, and / or loop filter parameters (or not applied) to obtain
  • VLC variable length coding
  • CAVLC context adaptive VLC
  • CABAC syntax-based context-adaptive binary arithmetic coding
  • PIPE probability interval partitioning entropy
  • the encoded picture data 21 is output in the form of, for example, an encoded bit stream 21.
  • the encoded bitstream may be transmitted to video decoder 30 or archived for later transmission or retrieval by video decoder 30.
  • the entropy encoding unit 270 may also be used to entropy encode other syntax elements of the current video slice that is being encoded.
  • video encoder 20 may be used to encode a video stream.
  • the non-transform-based encoder 20 may directly quantize the residual signal without a transform processing unit 206 for certain blocks or frames.
  • the encoder 20 may have a quantization unit 208 and an inverse quantization unit 210 combined into a single unit.
  • FIG. 3 illustrates an exemplary video decoder 30 for implementing the technique of the present application, that is, constructing a fusion candidate list of a block to be decoded (current block) and decoding a compressed image based on the constructed fusion candidate list.
  • the video decoder 30 is configured to receive, for example, encoded picture data (eg, an encoded bit stream) 21 encoded by the encoder 20 to obtain a decoded picture 231.
  • video decoder 30 receives video data from video encoder 20, such as an encoded video bitstream and associated syntax elements representing picture blocks of encoded video slices.
  • the decoder 30 includes an entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a reconstruction unit 314 (such as a summer 314), a buffer 316, a loop filter 320, The decoded picture buffer 330 and the prediction processing unit 360.
  • the prediction processing unit 360 may include an inter prediction unit 344, an intra prediction unit 354, and a mode selection unit 362.
  • video decoder 30 may perform a decoding pass that is substantially inverse to the encoding pass described with reference to video encoder 20 of FIG. 2.
  • the entropy decoding unit 304 is configured to perform entropy decoding on the encoded picture data 21 to obtain, for example, quantized coefficients 309 and / or decoded encoding parameters (not shown in FIG. 3), for example, inter prediction, intra prediction parameters , (Filtered) any or all of the loop filter parameters and / or other syntax elements.
  • the entropy decoding unit 304 is further configured to forward the inter prediction parameters, the intra prediction parameters, and / or other syntax elements to the prediction processing unit 360.
  • Video decoder 30 may receive syntax elements at the video slice level and / or the video block level.
  • the inverse quantization unit 310 may be functionally the same as the inverse quantization unit 110, the inverse transform processing unit 312 may be functionally identical to the inverse transform processing unit 212, the reconstruction unit 314 may be functionally identical to the reconstruction unit 214, and the buffer 316 may be functionally Like the buffer 216, the loop filter 320 may be functionally the same as the loop filter 220, and the decoded picture buffer 330 may be functionally the same as the decoded picture buffer 230.
  • the prediction processing unit 360 may include an inter prediction unit 344 and an intra prediction unit 354.
  • the inter prediction unit 344 may be functionally similar to the inter prediction unit 244 and the intra prediction unit 354 may be functionally similar to the intra prediction unit 254.
  • the prediction processing unit 360 is generally used to perform block prediction and / or obtain a prediction block 365 from the encoded data 21, and to receive or obtain prediction-related parameters from, for example, an entropy decoding unit 304 (explicitly or implicitly) and / or Information about the selected prediction mode.
  • the intra-prediction unit 354 of the prediction processing unit 360 is used for the intra-prediction mode based on the signal representation and the previously decoded block from the current frame or picture Data to generate a prediction block 365 for a picture block of the current video slice.
  • the inter-prediction unit 344 e.g., a motion compensation unit
  • the other syntax elements generate a prediction block 365 for a video block of the current video slice.
  • a prediction block may be generated from a reference picture in a reference picture list.
  • the video decoder 30 may construct a reference frame list using a default construction technique based on the reference pictures stored in the DPB 330: List 0 and List 1.
  • the prediction processing unit 360 is configured to determine prediction information for a video block of a current video slice by analyzing a motion vector and other syntax elements, and use the prediction information to generate a prediction block for a current video block that is being decoded. For example, the prediction processing unit 360 uses some of the received syntax elements to determine a prediction mode (e.g., intra or inter prediction) of a video block used to encode a video slice, an inter prediction slice type (e.g., B slice, P slice or GPB slice), construction information for one or more of the reference picture lists for the slice, motion vectors for each inter-coded video block for the slice, each warp for the slice The inter-prediction status and other information of the inter-coded video block to decode the video block of the current video slice.
  • a prediction mode e.g., intra or inter prediction
  • an inter prediction slice type e.g., B slice, P slice or GPB slice
  • construction information for one or more of the reference picture lists for the slice motion vectors for each inter-coded video block
  • the inverse quantization unit 310 may be used for inverse quantization (ie, inverse quantization) of the quantized transform coefficients provided in the bitstream and decoded by the entropy decoding unit 304.
  • the inverse quantization process may include using the quantization parameters calculated by video encoder 20 for each video block in the video slice to determine the degree of quantization that should be applied and also to determine the degree of inverse quantization that should be applied.
  • the inverse transform processing unit 312 is configured to apply an inverse transform (for example, an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process) to the transform coefficients to generate a residual block in the pixel domain.
  • an inverse transform for example, an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process
  • Reconstruction unit 314 (e.g., summer 314) is used to add inverse transform block 313 (i.e., reconstructed residual block 313) to prediction block 365 to obtain reconstructed block 315 in the sample domain, such as by The sample values of the reconstructed residual block 313 are added to the sample values of the prediction block 365.
  • the loop filter unit 320 (during or after the encoding cycle) is used to filter the reconstructed block 315 to obtain the filtered block 321 so as to smoothly perform pixel conversion or improve video quality.
  • the loop filter unit 320 is intended to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or other filters such as a bilateral filter, Adaptive loop filters (adaptive loop filters, ALF), or sharpening or smoothing filters, or cooperative filters.
  • the loop filter unit 320 is shown as an in-loop filter in FIG. 3, in other configurations, the loop filter unit 320 may be implemented as a post-loop filter.
  • the decoded video block 321 in a given frame or picture is then stored in a decoded picture buffer 330 that stores reference pictures for subsequent motion compensation.
  • the decoder 30 is used, for example, to output a decoded picture 31 through an output 332 for presentation to or review by a user.
  • video decoder 30 may be used to decode the compressed bitstream.
  • the decoder 30 may generate an output video stream without the loop filter unit 320.
  • the non-transform-based decoder 30 may directly inversely quantize the residual signal without the inverse transform processing unit 312 for certain blocks or frames.
  • the video decoder 30 may have an inverse quantization unit 310 and an inverter conversion processing unit 312 combined into a single unit.
  • FIG. 4 is a schematic structural diagram of a video decoding device 400 (such as a video encoding device 400 or a video decoding device 400) according to an embodiment of the present invention.
  • Video coding device 400 is adapted to implement the embodiments described herein.
  • the video coding device 400 may be a video decoder (such as video decoder 30 of FIG. 1A) or a video encoder (such as video encoder 20 of FIG. 1A).
  • the video decoding device 400 may be one or more of the video decoder 30 of FIG. 1A or the video encoder 20 of FIG. 1A described above.
  • the video decoding device 400 includes: an entry port 410 and a receiving unit (Rx) 420 for receiving data, a processor, a logic unit or a central processing unit (CPU) 430 for processing data, and a transmitter unit for transmitting data (Tx) 440 and egress port 450, and a memory 460 for storing data.
  • the video decoding device 400 may further include a photoelectric conversion component and an electro-optic (EO) component coupled with the entrance port 410, the receiver unit 420, the transmitter unit 440, and the exit port 450 for an exit or entrance of an optical signal or an electric signal.
  • EO electro-optic
  • the processor 430 is implemented by hardware and software.
  • the processor 430 may be implemented as one or more CPU chips, cores (eg, multi-core processors), FPGAs, ASICs, and DSPs.
  • the processor 430 is in communication with the ingress port 410, the receiver unit 420, the transmitter unit 440, the egress port 450, and the memory 460.
  • the processor 430 includes a decoding module 470 (eg, an encoding module 470 or a decoding module 470).
  • the encoding / decoding module 470 implements the embodiments disclosed above. For example, the encoding / decoding module 470 implements, processes, or provides various encoding operations.
  • the function of the video decoding device 400 is substantially improved through the encoding / decoding module 470, and the transition of the video decoding device 400 to different states is affected.
  • the encoding / decoding module 470 is implemented with instructions stored in the memory 460 and executed by the processor 430.
  • the memory 460 includes one or more magnetic disks, tape drives, and solid-state hard disks, which can be used as overflow data storage devices for storing programs when these programs are selectively executed, and for storing instructions and data read during program execution.
  • the memory 460 may be volatile and / or non-volatile, and may be a read-only memory (ROM), a random access memory (RAM), a random content-addressable memory (TCAM), and / or a static state. Random access memory (SRAM).
  • FIG. 5 is a simplified block diagram of an apparatus 500 that can be used as either or both of the source device 12 and the destination device 14 in FIG. 1A according to an exemplary embodiment.
  • the apparatus 500 may implement the technology of the present application for constructing a fusion candidate list and encoding or decoding an image based on the constructed fusion candidate list.
  • the apparatus 500 may take the form of a computing system including a plurality of computing devices, or take the form of a single computing device such as a mobile phone, tablet computer, laptop computer, notebook computer, desktop computer, and the like.
  • the processor 502 in the apparatus 500 may be a central processing unit.
  • the processor 502 may be any other type of device or multiple devices capable of manipulating or processing information, existing or to be developed in the future.
  • speed and efficiency advantages can be achieved using more than one processor.
  • the memory 504 in the device 500 may be a read-only memory (ROM) device or a random access memory (RAM) device. Any other suitable type of storage device can be used as the memory 504.
  • the memory 504 may include code and data 506 accessed by the processor 502 using the bus 512.
  • the memory 504 may further include an operating system 508 and an application program 510, which contains at least one program that permits the processor 502 to perform the methods described herein.
  • applications 510 may include applications 1 through N, and applications 1 through N further include video encoding applications that perform the fusion candidate list construction described herein.
  • the device 500 may also include additional memory in the form of a slave memory 514, which may be, for example, a memory card for use with a mobile computing device. Because a video communication session may contain a large amount of information, this information may be stored in whole or in part in the slave memory 514 and loaded into the memory 504 for processing as needed.
  • the apparatus 500 may also include one or more output devices, such as a display 518.
  • the display 518 may be a touch-sensitive display combining a display and a touch-sensitive element operable to sense a touch input.
  • the display 518 may be coupled to the processor 502 through a bus 512.
  • other output devices may be provided that allow the user to program or otherwise use the device 500, or provide other output devices as an alternative to the display 518.
  • the display can be implemented in different ways, including through a liquid crystal display (LCD), a cathode-ray tube (CRT) display, a plasma display, or a light emitting diode diode (LED) displays, such as organic LED (OLED) displays.
  • LCD liquid crystal display
  • CTR cathode-ray tube
  • plasma display a plasma display
  • LED light emitting diode diode
  • OLED organic LED
  • the apparatus 500 may further include or be in communication with an image sensing device 520, such as a camera or any other image sensing device 520 that can or will be developed in the future to sense an image, such as An image of a user running the device 500.
  • the image sensing device 520 may be placed directly facing a user of the running apparatus 500.
  • the position and optical axis of the image sensing device 520 may be configured such that its field of view includes an area immediately adjacent to the display 518 and the display 518 is visible from the area.
  • the device 500 may also include or be in communication with a sound sensing device 522, such as a microphone or any other sound sensing device that can or will be developed in the future to sense the sound near the device 500.
  • the sound sensing device 522 may be placed directly facing the user of the operating device 500 and may be used to receive a sound, such as a voice or other sound, emitted by the user when the device 500 is running.
  • the processor 502 and the memory 504 of the apparatus 500 are shown in FIG. 5 as being integrated in a single unit, other configurations may be used.
  • the operation of the processor 502 may be distributed among multiple directly-coupled machines (each machine has one or more processors), or distributed in a local area or other network.
  • the memory 504 may be distributed among multiple machines, such as a network-based memory or a memory among multiple machines running the apparatus 500.
  • the bus 512 of the device 500 may be formed by multiple buses.
  • the slave memory 514 may be directly coupled to other components of the device 500 or may be accessed through a network, and may include a single integrated unit, such as one memory card, or multiple units, such as multiple memory cards. Therefore, the apparatus 500 can be implemented in various configurations.
  • FIG. 6 is a flowchart of an example operation of a method for constructing a fusion candidate list according to an embodiment of the present invention according to the video encoder 20 and the video decoder 30 shown in FIGS. 1A and 1B.
  • One or more functional units of the video encoder 20 or the video decoder 30 include a prediction processing unit 260/360, which can be used to execute the method of FIG. 6.
  • a prediction processing unit 260/360 which can be used to execute the method of FIG. 6.
  • an improved method for constructing a fusion candidate list is proposed.
  • the inter prediction mode corresponding to the non-adjacent spatial fusion candidate determines whether to add the non-adjacent spatial fusion candidate to the fusion candidate list, thereby improving prediction efficiency.
  • the candidate list construction method 600 includes:
  • S601 adds motion information of a neighboring block adjacent to the current block spatial domain as a spatial fusion candidate of the current block to a fusion candidate list of the current block based on a preset first selection rule;
  • the preset first selection rule includes: when the neighboring block is available and the motion information of the neighboring block is different from the motion information of the neighboring block at a specific position, the neighboring block is changed.
  • the motion information of the current block as a spatial fusion candidate of the current block is added to the fusion candidate list of the current block;
  • S603 adds motion information of a non-adjacent block that is not adjacent to the current block spatial domain as a non-adjacent spatial fusion candidate of the current block to the fusion candidate list based on a preset second selection rule;
  • the current block has one or more non-adjacent blocks that are not adjacent in the airspace
  • the preset second selection rule includes: judging the non-phase when the non-adjacent blocks are available.
  • the inter prediction mode of at least one non-adjacent block in the neighboring block is not a predetermined inter prediction mode, and the motion information of the at least one non-adjacent block is related to the motion information of the neighboring block or non-adjacent block at a specific position.
  • the motion information of the at least one non-adjacent block is added as a non-adjacent spatial fusion candidate of the current block to the fusion candidate list.
  • the non-adjacent block When the non-adjacent block is available, Determine that the inter prediction mode of at least one non-adjacent block among the non-adjacent blocks is a predetermined inter-prediction mode, then the non-adjacent spatial fusion candidate of the at least one non-adjacent block is not added to the current block List of fusion candidates.
  • the predetermined inter prediction mode is a skip / merge mode and / or an affine transformation prediction mode.
  • At least one non-adjacent block in the non-adjacent blocks described in the above solution may be an adjacent block at a predetermined position, that is, the present invention allows a part of the non-adjacent blocks to determine an inter prediction mode, and of course Inter-prediction mode determination is also allowed for all non-adjacent blocks.
  • the proper selection of fusion candidates during the process of adding fusion candidates to the fusion candidate list can improve the fusion candidate list.
  • the diversity of each fusion candidate and their similarity to the current block motion information thereby improving prediction efficiency.
  • whether a non-adjacent space fusion candidate overlaps with a fusion candidate list in the fusion candidate list to determine whether to add the non-adjacent space fusion candidate to the fusion candidate list but does not consider non-adjacent space. Inter prediction mode corresponding to the fusion candidate.
  • the motion information of non-adjacent spatial fusion candidates using skip / merge mode is easily duplicated or similar to the motion information of adjacent spatial fusion candidates, which is not conducive to improving the diversity of motion information in the fusion candidate list.
  • the non-adjacent spatial fusion candidate uses the affine model prediction mode and the current block uses the translation model prediction mode, these two regions have different motion types, so this non-adjacent spatial fusion candidate and the current block's
  • the relevance of actual motion information is low and should not be added to the fusion candidate list.
  • the inter-prediction mode of non-adjacent blocks is used as a determination criterion, which can effectively improve the diversity of motion information in the fusion candidate list, and can also avoid excessive
  • the fusion candidates with low correlation are added to the fusion candidate list, thereby effectively improving the performance of encoding and decoding.
  • the above-mentioned preset inter prediction mode may also be a mode other than the skip mode / fusion mode or the Affine mode mentioned in the present invention, such as an optical flow field mode.
  • the method for constructing the candidate list of the present invention may further include the following steps:
  • S602 adds motion information of a neighboring block in the lower right corner of a co-located block in a reference frame of the current block as a time-domain fusion candidate of the current block to the fusion candidate list, where the co-located block is in the The position in the reference frame is the same as the current position of the current block, or if the motion information of the adjacent block in the lower right corner of the co-located block is not available, the motion information of the center point of the co-located block is used as The time-domain fusion candidate of the current block is added to the fusion candidate list.
  • This step inherits the acquisition step of the fusion candidate in the time domain in HEVC.
  • This step uses the characteristics of the block (co-located block) at the same position in the reference frame of the current block in the time domain to decode the co-located block in the lower right corner.
  • Adjacent motion information is added to the fusion candidate list as a time-domain fusion candidate of the current block to enrich the diversity of the fusion candidate list.
  • the fusion candidate in the time domain may also be selected from other adjacent or non-adjacent blocks adjacent to the co-located block according to requirements, which may be used as a further extension of the above steps or may be Alternatives are combined with the solution of the invention.
  • the method for constructing the candidate list of the present invention may further include the following steps
  • S605 Add the bidirectional prediction fusion candidate to the fusion candidate list when the current block belongs to a bi-predictive slice, or add the bidirectional prediction fusion candidate to the fusion. After the candidate list is included, if the number of the fusion candidates in the fusion candidate list does not reach the predetermined value, a zero motion vector fusion candidate is added to the fusion candidate list; or When the current block belongs to a uni-predictive slice, a zero motion vector fusion candidate is added to the fusion candidate list.
  • the fusion candidate list usually has a predetermined number of fusion candidates, but may occur in individual cases. After traversing the above steps S601 to S603, the fusion candidate list is still not full. That is, there is room for other fusion candidates.
  • the fusion candidate list can be filled according to the prediction type of the current block, which is included in the Adding a bidirectional prediction fusion candidate to the fusion candidate list when the current block belongs to a bi-predictive slice, or adding the bidirectional prediction fusion candidate to the fusion candidate list After that, if the number of the fusion candidates in the fusion candidate list does not reach the predetermined value, a zero motion vector fusion candidate is added to the fusion candidate list; or when the current block belongs to a single block When predicting a slice (uni-predictive slice), a zero motion vector fusion candidate is added to the fusion candidate list.
  • the solution of the invention determines whether to add non-adjacent spatial fusion candidates to the fusion candidate list according to the inter prediction mode of the non-adjacent spatial fusion candidates, thereby making the added non-adjacent spatial fusion candidates more accurate and diverse, which can improve Coding efficiency.
  • the following is a specific example of constructing a fusion candidate list based on the present invention.
  • a method for constructing a fusion candidate list includes the following steps;
  • Step 1 Add the spatial fusion candidate adjacent to the spatial domain of the current block to the fusion candidate list of the current block.
  • This step is a conventional technique, for example, a method for obtaining a spatial fusion candidate in HEVC and adding the spatial fusion candidate to a fusion candidate list.
  • the spatial fusion neighbors in the spatial domain are the motion information of blocks A, B, C, D, and E in FIG. 9, and the order in which they join the fusion candidate list is A, B, C, D, and E.
  • motion information is stored in a motion vector field in units of 4x4 blocks.
  • the motion information of a block can be found in the motion vector field by the coordinates of the upper left corner of the block.
  • the coordinate of the upper left corner of the block is (x, y)
  • the coordinate of its corresponding element in the motion vector field is (x >> 2, y >> 2)
  • ">>" indicates a right shift operation.
  • the corresponding spatially adjacent blocks are found, such as the motion information of blocks A to E, or the motion of blocks A to E
  • Vector information also known as spatial fusion candidates.
  • motion information include, but are not limited to, the use of one or two reference picture lists and information about the reference index and motion vector of each list.
  • the first candidate in the fusion candidate list. Is a spatially adjacent block A.
  • up to four spatial fusion candidates can be inserted in the merge list in the stated order by sequentially checking A, B, C, D, and E in sequence.
  • the maximum number of spatial fusion candidates allowed in VVC may not be four, it may be more, and of course it may be less, depending on the complexity of the algorithm and the gain that different numbers of spatial fusion candidates can bring.
  • Some additional redundancy checks are performed before using all motion information of neighboring blocks as fusion candidates.
  • redundancy checks can be divided into two categories for two different purposes: a. Avoiding candidates with redundant motion information in the list; b. Preventing the merging of two redundant syntaxes that can be represented in other ways Partition.
  • M is the number of spatial fusion candidates
  • the complete redundancy check will be determined by Comparison of sub-motion information. In the case of five potential spatial fusion candidates, ten motion information comparisons will be required to ensure that all candidates in the merged list have different motion information.
  • the inspection of redundant motion information has been reduced to a subset, thereby keeping the encoding efficiency while significantly reducing the comparison logic. In the final design, no more than two comparisons are performed for each candidate, resulting in a total of five comparisons.
  • the motion information in the C block is only compared with the motion information in the B block
  • the motion information in the D block is only compared with the motion information in the A block
  • the motion information in the E block is only compared with the motion information in the A and B blocks.
  • a fusion estimation level is also introduced in HEVC, where the fusion candidate list can be obtained independently by checking whether the block containing the fusion candidate is in a merge estimation region (MER), that is, in the same MER
  • MER merge estimation region
  • the fusion candidate cannot be included in the fusion candidate list, thereby allowing multiple to-be-processed image blocks to perform motion estimation in the fusion mode in parallel to perform corresponding inter prediction.
  • Step 2 Add the time-domain fusion candidate of the current block to the fusion candidate list of the current block.
  • This step is an optional step, that is, this step can be selected to be performed or not performed according to requirements.
  • HEVC (Sps / slice_temporal_mvp_enabled_flag) controls whether TMVP is enabled or disabled at the sequence level or the picture level.
  • the candidate for the temporal fusion of the current block is usually obtained from the motion information of the image block in the lower right corner of the image block in the reference image of the current block at the same position as the current block. If the image block is not available, it is taken from the reference of the current block The motion information of the center position of the image block in the same position as the current block in the image.
  • Step 3 According to the inter prediction mode of the non-adjacent spatial fusion candidate of the current block, add the non-adjacent spatial fusion candidate to the fusion candidate list of the current block.
  • the non-adjacent space fusion candidates are the motion information of A1, B1, C1, D1, E1, A2, B2, C2, D2, E2, F, G, H, I blocks in FIG. 9;
  • the order of joining the fusion candidate list is A1, B1, C1, D1, E1, F, G, H, I, A2, B2, C2, D2, E2.
  • FIG. 1 the motion information of A1, B1, C1, D1, E1, A2, B2, C2, D2, and E2 blocks.
  • the order of the non-adjacent spatial fusion candidates to join the fusion candidate list is A1, B1, C1. D1, E1, A2, B2, C2, D2, E2.
  • PAi (x0-4 -i * Sx, y0 + H-4)
  • PBi (x0 + W-4, y0-4-i * Sy)
  • PCi (x0 + W , y0-4-i * Sy)
  • PDi (x0-4-i * Sx, y0 + H)
  • the inter prediction mode of the non-adjacent spatial fusion candidate is the inter prediction mode of the coding unit to which the non-adjacent spatial fusion candidate belongs, or the inter prediction mode of the prediction unit to which the non-adjacent spatial fusion candidate belongs. If the coding unit corresponding to the non-adjacent spatial fusion candidate is not available (for example, the coding unit corresponding to the non-adjacent spatial fusion candidate is not in the current band or the reconstruction has not been completed), or the non-adjacent spatial fusion candidate If the corresponding coding unit is available but does not use the inter prediction mode, this non-adjacent spatial fusion candidate is not available. Unavailable non-adjacent spatial fusion candidates are not added to the fusion candidate list. This is the prior art. For details, please refer to the relevant sections in the existing HEVC standard.
  • the process of adding it to the fusion candidate list of the current block according to its inter prediction mode may include one of the following processing methods:
  • Method 1 If the inter-prediction mode of the non-adjacent spatial fusion candidate is skip / merge mode, this non-adjacent spatial fusion candidate is not added to the fusion candidate list; otherwise, the judgment of the non-adjacent spatial fusion candidate is determined. Whether the motion information is different from the motion information of the fusion candidate at the preset position or is different from the motion information of the fusion candidate already in the fusion candidate list. If this judgment is true, that is, if different, the non-adjacent Spatial fusion candidates are added to the fusion candidate list. To determine whether the two pieces of motion information are different, it can be determined according to whether the two prediction directions, reference frames, and motion vectors of the two pieces of motion information are the same. If any of the above parameters are different, the two pieces of motion information are considered to be different.
  • Method 2 If the inter-prediction mode of the non-adjacent spatial fusion candidate is an affine transformation prediction mode, the non-adjacent spatial fusion candidate is not added to the fusion candidate list; otherwise, the non-adjacent spatial fusion candidate is judged. Whether the motion information of is different from the motion information of the fusion candidate at the specific position or is different from the motion information of the fusion candidate already in the fusion candidate list, if this judgment holds, that is, if it is different, then this non-adjacent Spatial fusion candidates are added to the fusion candidate list.
  • Method 3 If the inter-prediction mode of the non-adjacent spatial fusion candidate is the skip / merge mode or the affine transformation prediction mode, then the non-adjacent spatial fusion candidate is not added to the fusion candidate list; otherwise, the non-adjacent spatial fusion candidate is judged Whether the motion information of the fusion candidate in the neighboring space is different from the motion information of the fusion candidate at the preset position or is different from the motion information of the fusion candidate already in the fusion candidate list. If this judgment holds, if it is different, then This non-adjacent spatial fusion candidate is added to the fusion candidate list.
  • Method 4 If the inter-prediction mode of the non-adjacent spatial fusion candidate is skip / merge mode and the non-adjacent spatial fusion candidate is located in the A2, B2, C2, D2, and E2 blocks, the non-adjacent spatial fusion candidate is not included.
  • the fusion candidate is added to the fusion candidate list; otherwise, it is judged whether the motion information of the non-adjacent spatial fusion candidate is different from the motion information of the fusion candidate at a preset position or whether it is different from the existing fusion candidate in the fusion candidate list. If this judgment is true, if different, then add this non-adjacent spatial fusion candidate to the fusion candidate list.
  • Method 5 If the inter-prediction mode of the non-adjacent spatial fusion candidate is skip / merge mode and the non-adjacent spatial fusion candidate is located in a specific coding block, the specific block includes: A1, B1, C2 For blocks D2 and E2, this non-adjacent spatial fusion candidate is not added to the fusion candidate list; otherwise, it is determined whether the motion information of the non-adjacent spatial fusion candidate is different from the motion information of the fusion candidate at a preset position or whether Different from the motion information of existing fusion candidates in the fusion candidate list, if this judgment is true, if not, then this non-adjacent spatial fusion candidate is added to the fusion candidate list.
  • Method 6 If the inter-prediction mode of the non-adjacent space fusion candidate is an affine transformation mode and the non-adjacent space fusion candidate is located in the A2, B2, C2, D2, or E2 block, the non-adjacent space is not replaced.
  • the fusion candidate is added to the fusion candidate list; otherwise, it is judged whether the motion information of the non-adjacent spatial fusion candidate is different from the motion information of the fusion candidate at a preset position or is different from at least one fusion existing in the fusion candidate list. If this judgment is true for the candidate's motion information, if it is different, then this non-adjacent spatial fusion candidate is added to the fusion candidate list.
  • Method 7 If the inter-prediction mode of the non-adjacent space fusion candidate is an affine transformation mode and the non-adjacent space fusion candidate is located in the A1, B1, C1, D1, and E1 blocks, the non-adjacent space is not replaced.
  • the fusion candidate is added to the fusion candidate list; otherwise, it is judged whether the motion information of the non-adjacent spatial fusion candidate is different from the motion information of the fusion candidate at a preset position or is different from at least one fusion existing in the fusion candidate list. If this judgment is true for the candidate's motion information, if it is different, then this non-adjacent spatial fusion candidate is added to the fusion candidate list.
  • Step 4 Add other types of fusion candidates, such as bi-predictive merge candidates and zero motion vector merge candidates.
  • This step is an optional step, for example, a method for obtaining a bidirectional prediction fusion candidate and a zero motion vector fusion candidate in HEVC and adding them to the fusion candidate list.
  • the merge index is parsed from the code stream, and the fusion candidate corresponding to the merge index is selected from the fusion candidate list constructed by the above method to obtain the motion information of the current block.
  • Perform motion compensation according to the motion information of the current block to obtain a predicted image of the current block.
  • the prediction image of the current block is added to the residual image of the current block to obtain a reconstructed image of the current block, thereby completing decoding of the current block.
  • the inventive solution determines whether to add non-adjacent spatial fusion candidates to the fusion candidate list according to the inter prediction mode of the non-adjacent spatial fusion candidates, thereby making the added non-adjacent spatial fusion candidates more Accurate and diversified to improve coding efficiency.
  • FIG. 7 is a flowchart of an example operation for implementing image encoding by applying the fusion candidate list construction method constructed in FIG. 6 in an embodiment of the present invention according to the video decoder 30 shown in FIGS. 1A and 1B.
  • One or more functional units of the video decoder 30 include a prediction processing unit 360, which may be used to perform the method of FIG.
  • a picture is decoded based on the fusion candidate list constructed by the method of FIG. 6.
  • the decoding method 700 specifically includes:
  • S703 obtains the corresponding fusion candidate from the fusion candidate list according to the fusion candidate index and uses the fusion candidate as the motion information of the current block;
  • S705 performs inter prediction on the current block according to the motion information of the current block to obtain a predicted image of the current block
  • S709 adds the predicted image of the current block and the residual image of the current block to obtain a reconstructed image of the current block.
  • the decoding method 700 further includes: constructing a fusion candidate list of the current block according to the method in FIG. 6.
  • a fusion candidate list construction method for determining whether to add a non-adjacent spatial fusion candidate to a fusion candidate list according to an inter prediction mode of a non-adjacent spatial fusion candidate is used. This makes the added non-adjacent spatial fusion candidates more accurate and diverse, and can improve decoding efficiency.
  • FIG. 8 is a flowchart of an example operation for implementing image encoding by applying the fusion candidate list construction method constructed in FIG. 6 in an embodiment of the present invention according to the video encoder 20 shown in FIGS. 1A and 1B.
  • One or more functional units of the video encoder 20 include a prediction processing unit 260, which may be used to perform the method of FIG.
  • the picture is encoded based on the fusion candidate list constructed by the method in FIG. 6.
  • the decoding method 800 specifically includes:
  • S801 Perform RDO-based fusion evaluation (Mergeestimation) on the current block based on each fusion candidate in the fusion candidate list, and use the fusion candidate with the lowest rate-distortion value as the motion information of the current block.
  • S803 encode the current block to form encoded data based on the motion information of the current block
  • S805 adds a position index of the fusion candidate with the lowest rate-distortion cost value in the fusion candidate list to the encoded data.
  • the decoding method 800 further includes: constructing a fusion candidate list of the current block according to the method in FIG. 6.
  • a fusion candidate list construction method for determining whether to add a non-adjacent spatial fusion candidate to a fusion candidate list according to an inter prediction mode of a non-adjacent spatial fusion candidate is used. This makes the added non-adjacent spatial fusion candidates more accurate and diverse, and can improve decoding efficiency.
  • the embodiment of the present application provides a device for constructing a fusion candidate sportsman list for performing inter prediction, and the device may be a video decoder, a video encoder, or a decoder.
  • the apparatus for constructing the fusion candidate athlete list is used to perform the steps performed by the constructing device in the method for constructing the fusion candidate athlete list.
  • the construction apparatus provided in the embodiment of the present application may include a module corresponding to a corresponding step.
  • each functional module may be divided corresponding to each function, or two or more functions may be integrated into one process.
  • the above integrated modules may be implemented in the form of hardware or software functional modules.
  • the division of the modules in the embodiments of the present application is schematic, and is only a logical function division. In actual implementation, there may be another division manner.
  • FIG. 11 illustrates a possible schematic structural diagram of a device for constructing a fusion candidate sportsman list for performing inter prediction in the foregoing embodiment.
  • a device 1100 for constructing a fusion candidate athlete list includes an airspace adjacent fusion candidate acquisition module 1101, an airspace non-adjacent fusion candidate acquisition module 1103, and an optional time domain fusion candidate acquisition module 1105 and Extended fusion candidate acquisition module 1107.
  • a spatial domain neighboring fusion candidate acquisition module 1101 is configured to add, based on a preset first selection rule, the motion information of a neighboring block adjacent to the current domain in the spatial domain as a spatial fusion candidate of the current block to the current block.
  • the preset first selection rule includes when the neighboring block is available and the motion information of the neighboring block is different from the motion information of the neighboring block at a specific position, Adding the motion information of the neighboring block as a spatial fusion candidate of the current block to the fusion candidate list of the current block;
  • a spatial domain non-adjacent fusion candidate acquisition module 1103 is configured to, based on a preset second selection rule, use motion information of a non-adjacent block that is not adjacent to the current domain's spatial domain as the non-adjacent space of the current block.
  • a fusion candidate is added to the fusion candidate list, wherein the current block has one or more non-adjacent blocks that are not adjacent in the airspace, and the preset second selection rule includes: when the non-phase If neighboring blocks are available, it is determined that the inter prediction mode of at least one non-adjacent block among the non-adjacent blocks is not a predetermined inter prediction mode, and the motion information and a specific position of the at least one non-adjacent block are When the motion information of a neighboring block or a non-adjacent block is the same, adding the motion information of the at least one non-adjacent block as a non-adjacent spatial fusion candidate of the current block to the fusion candidate list, When it is determined that the inter prediction mode of at least one non-adjacent block in the non-adjacent block is a predetermined inter-prediction mode when the non-adjacent block is available, the at least one non-adjacent block is not Non-adjacent space
  • a time-domain fusion candidate acquisition module 1105 is configured to use the motion information of the neighboring block in the lower right corner of the co-located block at the same position in the reference frame as the time-domain fusion candidate of the current block. Or adding the motion information of the center point of the co-located block as the time domain of the current block if the motion information of an adjacent block in the lower right corner of the co-located block is not available A fusion candidate is added to the fusion candidate list.
  • the fusion candidate acquisition module 1107 is extended, and the bidirectional prediction fusion candidate is added to the fusion candidate list when the current block belongs to a bi-predictive slice, or, After the bidirectional prediction fusion candidate is added to the fusion candidate list, the number of the fusion candidates in the fusion candidate list does not reach the predetermined value, then a zero motion vector fusion candidate is added to the fusion candidate list. Adding the fusion candidate list to the fusion candidate list; or adding the zero motion vector fusion candidate to the fusion candidate list when the current block belongs to a uni-predictive slice.
  • the invention also provides a decoding device, which may be a video decoder.
  • the decoding apparatus is configured to perform the decoding method described in FIG. 7.
  • the decoding apparatus provided in the embodiment of the present application may include a module corresponding to a corresponding step.
  • each functional module may be divided corresponding to each function, or two or more functions may be integrated into one process.
  • the above integrated modules may be implemented in the form of hardware or software functional modules.
  • the division of the modules in the embodiments of the present application is schematic, and is only a logical function division. In actual implementation, there may be another division manner.
  • FIG. 12 shows a schematic structural diagram of an encoding device involved in the foregoing embodiment.
  • the encoding device 1200 includes: a fusion candidate athlete list constructing device 1201, a code stream analysis module 1203, a motion information acquisition module 1205, a prediction module 1207, a residual acquisition module 1209, and a reconstruction module 1211.
  • the fusion candidate athlete list construction device 1201 has the same function as the fusion candidate athlete list construction device 1100 in FIG. 11, and is configured to obtain a fusion candidate list of a current block;
  • Code stream parsing module 1203, configured to parse the code stream to obtain the fusion candidate index
  • a motion information acquisition module 1205, configured to acquire a corresponding fusion candidate from the fusion candidate list according to the fusion candidate index and use the fusion candidate as the motion information of the current block;
  • a prediction module 1207 configured to perform inter prediction on the current block to obtain a predicted image of the current block according to the motion information of the current block;
  • a residual acquisition module 1209 configured to acquire a residual image of the current block
  • a reconstruction module 1207 is configured to add the predicted image of the current block and the residual image of the current block to obtain a reconstructed image of the current block.
  • the invention also provides an encoding device, which may be a video encoder.
  • the decoding apparatus is configured to perform the decoding method described in FIG. 8.
  • the encoding device provided in the embodiment of the present application may include a module corresponding to a corresponding step.
  • each functional module may be divided corresponding to each function, or two or more functions may be integrated into one process.
  • the above integrated modules may be implemented in the form of hardware or software functional modules.
  • the division of the modules in the embodiments of the present application is schematic, and is only a logical function division. In actual implementation, there may be another division manner.
  • FIG. 13 shows a schematic structural diagram of an encoding device involved in the foregoing embodiment.
  • the encoding device 1300 includes: a fusion candidate athlete list constructing device 1301, a motion information determination module 1303, a predictive encoding module 1305, and a fusion candidate index encoding module 1307.
  • the fusion candidate athlete list construction device 1301 has the same function as the fusion candidate athlete list construction device 1100 in FIG. 11 for constructing a fusion candidate list of the current block;
  • a motion information determination module 1303 is configured to perform an RDO-based fusion evaluation (Mergeestimation) on the current block based on each fusion candidate in the fusion candidate list, and use the fusion candidate with the smallest value of rate distortion as the fusion candidate Motion information of the current block;
  • a predictive encoding module 1305, configured to encode the current block to form encoded data based on the motion information of the current block;
  • the fusion candidate index coding module 1307 adds a position index of the fusion candidate with the lowest rate-distortion cost value in the fusion candidate list to the encoded data.
  • the solution of the present invention can also be implemented in the form of a processor, that is, a memory, that is, an executable instruction set is stored in the memory, and a digital processor can execute the instruction set in the memory to implement the method shown in FIG. 6-8. Either way.
  • the device described in FIG. 14 may be used as a decoding device 1400, an encoding device 1500, or a fusion candidate list construction device 1600 for performing inter prediction.
  • the device When the device is used as the decoding device 1400, it includes a digital processor 1401 and a memory 1403, in which an executable instruction set is stored, and the digital processor reads and stores the stored instruction set in the memory.
  • the instruction set is used to implement the decoding method described in FIG.
  • the device When the device is used as the encoding device 1500, it includes a digital processor 1501 and a memory 1503, in which an executable instruction set is stored, and the digital processor reads and stores in the memory
  • the instruction set is used to implement the decoding method described in FIG.
  • the device When the device is used as a fusion candidate list construction device 1600 for performing inter prediction, it includes a digital processor 1601 and a memory 1603, in which an executable instruction set is stored, and the digital processing The processor reads the instruction set stored in the memory for implementing the decoding method described in FIG. 6.
  • the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored or transmitted as one or more instructions or code on a computer-readable medium and executed by a hardware-based processing unit.
  • a computer-readable medium may include a computer-readable storage medium, which corresponds to a tangible medium such as a data storage medium or a communication medium including any medium that facilitates transfer of a computer program from one place to another, according to a communication protocol, for example.
  • computer-readable media generally may correspond to (1) tangible computer-readable storage media that is non-transitory, or (2) a communication medium such as a signal or carrier wave.
  • a data storage medium may be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, codes, and / or data structures used to implement the techniques described in this disclosure.
  • the computer program product may include a computer-readable medium.
  • such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, disk storage or other magnetic storage devices, flash memory, or may be used to store instructions or data structures Any other media that requires program code and is accessible by the computer.
  • any connection is properly termed a computer-readable medium.
  • a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technology such as infrared, radio, and microwave is used to transmit instructions from a website, server, or other remote source
  • Coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of the medium.
  • the computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other temporary media, but are actually directed to non-transitory tangible storage media.
  • magnetic disks and compact discs include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), flexible discs and Blu-ray discs, where the discs are usually magnetic The data is reproduced, while the optical disk uses a laser to reproduce the data optically. Combinations of the above should also be included within the scope of computer-readable media.
  • processors such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits , ASIC), field programmable logic array (field programmable logic arrays, FPGA) or other equivalent integrated or discrete logic circuits.
  • DSPs digital signal processors
  • ASIC application specific integrated circuits
  • FPGA field programmable logic arrays
  • processors may refer to any of the above-described structures or any other structure suitable for implementing the techniques described herein.
  • the functionality described herein may be provided within dedicated hardware and / or software modules for encoding and decoding, or incorporated in a composite codec. Also, the techniques could be fully implemented in one or more circuits or logic elements.
  • the techniques of this disclosure may be implemented in a variety of devices or devices that include a wireless handset, an integrated circuit (IC), or a collection of ICs (eg, a chipset).
  • IC integrated circuit
  • the present disclosure describes various components, modules, or units to emphasize functional aspects of the device for performing the disclosed techniques, but does not necessarily need to be implemented by different hardware units.
  • the various units may be combined in a codec hardware unit in combination with suitable software and / or firmware, or provided by a collection of interoperable hardware units, which include as described above One or more processors.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

La présente invention concerne un procédé de construction de liste de candidats à une fusion permettant une prédiction inter-trame, le procédé consistant : lorsque des blocs voisins peuvent être obtenus et que les informations de mouvement des blocs voisins sont différentes de celles des blocs voisins à des positions spécifiques, à ajouter les informations de mouvement des blocs voisins, utilisées en tant que candidates à une fusion d'espace du bloc actuel, à une liste de candidats à une fusion du bloc actuel ; et à ne pas ajouter un candidat à une fusion d'espace non voisin du ou des blocs non voisins à la liste de candidats à une fusion du bloc actuel lorsque des blocs non voisins peuvent être obtenus, le mode de prédiction inter d'au moins un bloc non voisin des blocs non voisins est considéré en tant que mode de prédiction inter-trame prédéterminé.
PCT/CN2019/101559 2018-08-20 2019-08-20 Procédé de construction de liste de candidats à une fusion, dispositif, et procédé et dispositif de codage/décodage WO2020038357A1 (fr)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201810948854.0 2018-08-20
CN201810948854 2018-08-20
CN201811014507.7A CN110855998B (zh) 2018-08-20 2018-08-31 融合候选者列表构建方法、装置及的编/解方法及装置
CN201811014507.7 2018-08-31

Publications (1)

Publication Number Publication Date
WO2020038357A1 true WO2020038357A1 (fr) 2020-02-27

Family

ID=69592292

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/101559 WO2020038357A1 (fr) 2018-08-20 2019-08-20 Procédé de construction de liste de candidats à une fusion, dispositif, et procédé et dispositif de codage/décodage

Country Status (1)

Country Link
WO (1) WO2020038357A1 (fr)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103841426A (zh) * 2012-10-08 2014-06-04 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
CN104602017A (zh) * 2014-06-10 2015-05-06 腾讯科技(北京)有限公司 视频编码器、方法和装置及其帧间模式选择方法和装置
CN104902271A (zh) * 2015-05-15 2015-09-09 腾讯科技(北京)有限公司 预测模式选择方法及装置
WO2018006982A1 (fr) * 2016-07-08 2018-01-11 Telefonaktiebolaget Lm Ericsson (Publ) Procédé et appareil d'émission avec antennes multiples
CN108235031A (zh) * 2016-12-15 2018-06-29 华为技术有限公司 一种运动矢量解码方法及解码器
CN108353166A (zh) * 2015-11-19 2018-07-31 韩国电子通信研究院 用于图像编码/解码的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103841426A (zh) * 2012-10-08 2014-06-04 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
CN104602017A (zh) * 2014-06-10 2015-05-06 腾讯科技(北京)有限公司 视频编码器、方法和装置及其帧间模式选择方法和装置
CN104902271A (zh) * 2015-05-15 2015-09-09 腾讯科技(北京)有限公司 预测模式选择方法及装置
CN108353166A (zh) * 2015-11-19 2018-07-31 韩国电子通信研究院 用于图像编码/解码的方法和装置
WO2018006982A1 (fr) * 2016-07-08 2018-01-11 Telefonaktiebolaget Lm Ericsson (Publ) Procédé et appareil d'émission avec antennes multiples
CN108235031A (zh) * 2016-12-15 2018-06-29 华为技术有限公司 一种运动矢量解码方法及解码器

Similar Documents

Publication Publication Date Title
CN111107356B (zh) 图像预测方法及装置
US11438578B2 (en) Video picture prediction method and apparatus
CN112040229B (zh) 视频解码方法、视频解码器及计算机可读存储介质
JP7237144B2 (ja) ビデオ処理方法、ビデオ処理装置、エンコーダ、デコーダ、媒体、およびコンピュータプログラム
JP7164710B2 (ja) ビデオ復号化方法及びビデオ・デコーダ
CN110855998B (zh) 融合候选者列表构建方法、装置及的编/解方法及装置
CN110868589A (zh) 帧间预测方法、装置及其应用的编/解方法及装置
JP2022535859A (ja) Mpmリストを構成する方法、クロマブロックのイントラ予測モードを取得する方法、および装置
US20230370597A1 (en) Picture partitioning method and apparatus
CN115243049A (zh) 视频图像解码、编码方法及装置
JP7337157B2 (ja) ビデオエンコーダ、ビデオデコーダおよびピクチャを符号化または復号する方法
CN110944184B (zh) 视频解码方法及视频解码器
CN111432219B (zh) 一种帧间预测方法及装置
WO2020181476A1 (fr) Procédé et dispositif de prédiction d'image vidéo
CN110868590A (zh) 图像划分方法及装置
WO2020259353A1 (fr) Procédé de codage/décodage entropique d'élément syntaxique, dispositif et codec
CN110958452B (zh) 视频解码方法及视频解码器
WO2020038357A1 (fr) Procédé de construction de liste de candidats à une fusion, dispositif, et procédé et dispositif de codage/décodage
CN111010565A (zh) 帧间预测方法、装置及其应用的编/解方法及装置
CN110876061A (zh) 色度块预测方法及装置
WO2020048361A1 (fr) Procédé de décodage vidéo et décodeur vidéo
WO2020042990A1 (fr) Procédé et dispositif de prédiction inter-trame, et procédé et dispositif de codage/décodage pour leur application

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: 19852175

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19852175

Country of ref document: EP

Kind code of ref document: A1