WO2019061537A1 - Procédé et appareil de dérivation de candidats de données de mouvement temporel dans un codage vidéo - Google Patents
Procédé et appareil de dérivation de candidats de données de mouvement temporel dans un codage vidéo Download PDFInfo
- Publication number
- WO2019061537A1 WO2019061537A1 PCT/CN2017/105133 CN2017105133W WO2019061537A1 WO 2019061537 A1 WO2019061537 A1 WO 2019061537A1 CN 2017105133 W CN2017105133 W CN 2017105133W WO 2019061537 A1 WO2019061537 A1 WO 2019061537A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- motion data
- tmd
- prediction
- candidates
- block
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/94—Vector quantisation
Definitions
- the present disclosure relates to the field of video coding and more particularly to a method for deriving one or more temporal motion data (TMD) candidates for a current block in video coding.
- TMD temporal motion data
- Video compression i.e., video coding
- video compression techniques apply prediction, transformation, quantization, and entropy coding on sequential blocks of pixels in a video sequence, to compress, i.e., encode, the video sequence.
- Video decompression techniques generally apply the inverses of these operations on the compressed video sequence in a reversed order, to decompress, i.e., decode, the compressed video sequence.
- a PU is the basic unit for carrying the information related to the prediction processes such as inter and intra-prediction.
- a PU is not restricted to a square shape in order to facilitate partitioning that matches boundaries of real objects in a picture.
- a CU may be partitioned into one or more PUs.
- a co-located PU or temporally co-located PU is a rectangular or square area in a reference picture having the same coordinates, size, and shape of a PU in a picture currently being encoded or decoded, i.e., a PU for which a merging candidate list or a motion vector predictor (MVP) candidate list is being constructed.
- MVP motion vector predictor
- PU partitioning may change from LCU to LCU, and from picture to picture.
- a co-located PU does not necessarily correspond to an actual PU of the reference picture. Rather, depending on the size, the co-located PU may overlap one actual PU, multiple actual PUs, portions of several actual PUs, a portion of an actual PU, etc. in the reference picture.
- a co-located CU or temporally co-located CU is a square area in a reference picture having the same coordinates, size, and shape of a CU in a picture currently being encoded or decoded, i.e., a CU for which a merging candidate list is being constructed.
- CU partitioning may change from LCU to LCU, and from picture to picture.
- a co-located CU does not necessarily correspond to an actual CU of the reference picture. Rather, depending on the size, the co-located CU may overlap one actual CU, multiple actual CUs, portions of several actual CUs, a portion of an actual CU, etc. in the reference picture.
- JCT-VC Joint Collaboration Team on Video Coding
- VCEG Video Coding Experts Group
- MPEG Motion Picture Experts Group
- HEVC High Efficiency Video Coding
- Several coding efficiency enhancement tools are proposed in the HEVC.
- One of them is a merge mode designed to reduce coding overhead by allowing an inter-predicted prediction unit (PU) to inherit motion data.
- Motion data including a motion vector, a prediction direction, and a reference picture index, are inherited from one of neighboring motion data positions in the same picture as the PU, and a temporal motion data position derived from a co-located block of the same size as the PU in a reference picture.
- the co-located block is referred to as the co-located PU.
- Another coding efficiency enhancement tools is a skip mode that can be seen as a coding unit (CU) level merge mode with all zero transform coefficients.
- AVP Advanced motion vector prediction
- for inter-prediction of a PU also considers motion vectors of selected neighboring motion data positions in the same picture and a temporal motion data position derived based on a co-located PU for use as motion vector predictors for the PU.
- the derivation process for motion data candidates namely merge candidates
- the construction of a merge candidates list for the PU is performed as shown in fig. 1A, in which if the number of candidates does not reach to maximum number of merge candidate, zero merge candidates are added at the end of the merge candidate list.
- the derivation process for motion data candidates namely MVP candidates
- MVP candidates the construction of a MVP candidate list for the PU
- Illustrative embodiments are disclosed to provide an apparatus and a method for derivation of one or more temporal motion data (TMD) candidates for a current block, for example, a current coding unit (CU) in video coding, a video encoder and a video decoder by way of example in the description and claims.
- TMD temporal motion data
- CU current coding unit
- the proposed method, apparatus, video encoder and video decoder allow for providing more meaningful motion data candidates for inclusion in an inter-prediction candidate list for the current block, for example, the current CU, thus the coding performance of video data can be improved.
- an embodiment of the present disclosure provides a method for deriving one or more temporal motion data (TMD) candidates for a current block, for example, a current coding unit (CU) , by a video coder, in which the TMD candidates are derived for inclusion in an inter-prediction candidate list for the current block, for example, the current CU, comprising:
- determining whether a first prediction block at a primary TMD position is available or not wherein the primary TMD position is a bottom right neighboring position outside a co-located block, for example, a co-located CU, wherein the co-located block is a block in a reference picture having a same size, shape, and coordinates as the current block;
- the secondary TMD position is a central position inside the co-located block.
- the current available motion data candidates may refer to a plurality of motion data candidates which have been derived until the time when the temporal candidate derivation of the primary TMD position is performed and motion data of the primary TMD position is available.
- the temporal candidate derivation is performed after the spatial candidate derivation is performed.
- the current available motion data candidates for the inter-prediction candidate list may refer to a plurality of motion data candidates which are available or possible for inclusion in the inter-prediction candidate list after the spatial candidates derivation is performed and the temporal candidate derivation of the primary TMD position is also performed.
- TMD temporal motion data
- the coding unit can be, for example, a macro block, a coding tree unit (CTU) , coding tree block, a coding block, a prediction unit and/or a prediction block.
- Each coding unit can comprise one or more of pixels or samples.
- the coding unit may have variable sizes depending on video content.
- the coding unit may be split into smaller blocks for prediction or transform.
- each coding unit may be further partitioned into prediction units (PUs) and transform units (TUs) .
- Prediction units may be considered to be similar to so-called partitions under other video coding standards, such as H. 264.
- Transform units (TUs) refer to blocks of residual data to which a transform is applied to produce transform coefficients.
- block may refer to any of a coding unit (CU) , a prediction unit (PU) or a transform unit (TU) .
- CU coding unit
- PU prediction unit
- TU transform unit
- block may refer to any sub-set of a video frame.
- the block can also be of any other suitable size such as 4 ⁇ 4 pixels, 8 ⁇ 8 pixels, 16 ⁇ 8 pixels, 8 ⁇ 16 pixels, 16 ⁇ 16 pixels or larger. Unless otherwise noted, the terms block and coding unit are used interchangeably herein.
- the method further comprises:
- selecting at least a part of motion data of the primary TMD position and/or at least a part of motion data of a secondary TMD position as the TMD candidates comprises:
- both the at least a part of motion data of the primary TMD position and the at least a part of motion data of the secondary TMD position may be selected as the TMD candidates by the video encoder or decoder.
- the at least a part of motion data of the secondary TMD position may be selected as the TMD candidate by the video encoder or decoder; otherwise, both two may be selected as the TMD candidates by the video encoder or decoder.
- the at least a part of motion data of the primary TMD position may be selected as the TMD candidate by the video encoder or decoder; or
- the at least a part of motion data of the primary TMD position is the same with any one of spatial motion data (SMD) candidates but the at least a part of motion data of the secondary TMD position is different from any one of spatial motion data (SMD) candidates
- the at least a part of motion data of the secondary TMD position may be selected as the TMD candidate by the video encoder or decoder; or
- both the at least a part of motion data of the primary TMD position and the at least a part of motion data of the secondary TMD position may be selected as the TMD candidates by the video encoder or decoder.
- the current available motion data candidates for the inter-prediction candidate list comprises a plurality of spatial motion data (SMD) candidates with the number of L and the at least a part of motion data of the primary TMD position being/as one TMD candidate, wherein L is an integer and equal to or larger than 0.
- SMD spatial motion data
- the current available motion data candidates may further comprises additional types of candidates, it is not limited in the present disclosure.
- the maximum number of L may be 4 or other value which is larger than 4 while the min number of L may be 0. In some example, if the inter-prediction candidate list is an MVP candidate list, the max number of L may be 2 or other value which is larger than 2while the min number of L may be 0.
- the plurality of spatial motion data (SMD) candidates may be derived from a plurality of motion data positions which are neighboring or non-neighboring from the current block in the same picture.
- the current available motion data candidates for the inter-prediction candidate list may comprise L SMD candidates, in which L may be 0, 1, 2, 3 or 4.
- L may be 0, 1, 2, 3 or 4.
- the order of the derivation of SMD candidates is A 1 ⁇ B 1 ⁇ B 0 ⁇ A 0 ⁇ (B 2 ) .
- Position B 2 is considered only when any PU of position A 1 , B 1 , B 0 and A 0 is not available or is intra coded.
- the order of the derivation of SMD candidates may be E ⁇ A 0 ⁇ C ⁇ B 0 ⁇ D.
- L may be 1, 2, 3 or 4.
- the addition of the remaining candidates is subject to a redundancy check which ensures that candidates with same motion information are excluded from the list so that coding efficiency is improved.
- the current available motion data candidates for the inter-prediction candidate list comprises a plurality of spatial motion data (SMD) candidates with the number of L and the at least a part of motion data of the primary TMD position being/as one TMD candidate; or
- the current available motion data candidates for the inter-prediction candidate list comprises a plurality of spatial motion data (SMD) candidates with the number of L, wherein L is integer and equal to or larger than 0.
- SMD spatial motion data
- the method further comprises:
- the secondary TMD position is one selected from a bottom right central position inside the co-located block and an upper left central position inside the co-located block.
- the method further comprises:
- the current available motion data candidates for the inter-prediction candidate list may further include the at least a part of motion data of the primary TMD position or the secondary TMD position and the alternative TMD position is also relative to the co-located block , in particular, the alternative TMD position is inside the co-located block;
- selecting at least a part of motion data of the primary TMD position and/or at least a part of motion data of a secondary TMD position as the TMD candidates comprises:
- the current available motion data candidates may refer to a plurality of motion data candidates which have been derived until the time when the temporal candidates derivation of the primary and secondary TMD positions is performed.
- the temporal candidate derivation is performed after the spatial candidate derivation is performed.
- the current available motion data candidates for the inter-prediction candidate list may refer to a plurality of motion data candidates which are available or possible for inclusion in the inter-prediction candidate list after the spatial candidates derivation is performed and the temporal candidates derivation of the primary and secondary TMD positions is also performed.
- the available motion data candidates for the inter-prediction candidate list are not enough at the time when the temporal candidate derivation of the primary TMD position is performed and motion data of the primary TMD position is available, then the available motion data candidates for the inter-prediction candidate list are still not enough at the time when the temporal candidate derivation of the primary and secondary TMD positions are both performed and motion data of the primary TMD position is available but motion data of the secondary TMD position is not available.
- the alternative TMD position is one selected from the following: an upper left position inside the co-located block, a bottom right position inside the co-located block, a neighboring position outside the co-located block, and/or an upper left central position or a bottom right central position inside the co-located block (if it is not determined as the secondary TMD position) .
- this method allows selecting at least one temporal motion data (TMD) candidates from one or more potential TMD candidates, which are derived based on two or more different co-located positions.
- TMD temporal motion data
- more meaningful TMD candidates can be included in the inter-prediction candidate list for the prediction of the current block.
- it reduces the possibility of adding additional zero motion candidates into the inter-prediction candidate list, thus the coding performance of video data can be further improved.
- the inter-prediction candidate list is a merging candidate list
- the selecting at least a part of motion data of the primary TMD position and/or at least a part of motion data of a secondary TMD position comprises: selecting motion data of the primary TMD position and/or motion data of the secondary TMD position as one or more temporal merging candidates; or the inter-prediction candidate list is an MVP candidate list, the selecting at least a part of motion data of the primary TMD position and/or at least a part of motion data of a secondary TMD position comprises: selecting motion vector data from motion data of the primary TMD position and/or motion vector data from motion data of the secondary TMD position as one or more temporal motion vector predictor (MVP) candidates.
- MVP temporal motion vector predictor
- the target number is the preset maximum number of motion data candidates in the inter-prediction candidate list for the current block; or the target number is a number of motion data candidates which is determined based on an index parsed from a received bitstream, wherein the index indicates a selected motion data candidate in the inter-prediction candidate list.
- the maximum number of merge candidate (MaxNumMergeCand) may be 5 or 7 or other values; for the AMVP mode, the maximum number of motion vector candidates may be 2 or 3 or other values.
- the maximum or constant number of candidates for each PU may be assumed at decoder. The maximum number of candidates may be signaled in slice header.
- an embodiment of the present disclosure provides an apparatus for derivation of one or more temporal motion data (TMD) candidates for a current block in video encoding or video decoding, the TMD candidates for inclusion in an inter-prediction candidate list for the current block, the apparatus comprising:
- a determination module configured to determine whether a first prediction block at a primary TMD position is available or not, wherein the primary TMD position is a bottom right neighboring position outside a co-located block, wherein the co-located block is a block in a reference picture having a same size, shape, and coordinates as the current block;
- a temporal candidate derivation module configured to select at least a part of motion data of the primary TMD position and/or at least a part of motion data of a secondary TMD position as the TMD candidates when the first prediction block at the primary TMD position is available and when the number of current available motion data candidates for the inter-prediction candidate list is smaller than a target number, wherein the secondary TMD position is a central position inside the co-located block.
- the determination module is further configured to determine whether the number of the current available motion data candidates for the inter-prediction candidate list reaches to the target number or not when the first prediction block at the primary TMD position is available, particularly when motion data at the primary TMD position is available; and determine whether a second prediction block at a secondary TMD position is available or not when the number of the current available motion data candidates for the inter-prediction candidate list does not reach to the target number; and
- temporal candidate derivation module is configured to select the at least a part of motion data of the primary TMD position and/or the at least a part of motion data of the secondary TMD position as the TMD candidates when the second prediction block at the secondary TMD position is available, particularly when motion data at the secondary TMD position is also available.
- the current available motion data candidates for the inter-prediction candidate list comprises a plurality of spatial motion data (SMD) candidates with the number of L and the at least a part of motion data of the primary TMD position being/as one TMD candidate, wherein L is an integer and equal to or larger than 0.
- SMD spatial motion data
- the current available motion data candidates for the inter-prediction candidate list comprises a plurality of spatial motion data (SMD) candidates with the number of L and the at least a part of motion data of the primary TMD position being/as one TMD candidate; or
- the current available motion data candidates for the inter-prediction candidate list comprises a plurality of spatial motion data (SMD) candidates with the number of L, wherein L is an integer and equal to or larger than 0.
- SMD spatial motion data
- the determination module (510) is further configured to determine whether a second prediction block at the secondary TMD position is available or not when the first prediction block at the primary TMD position is not available, particularly, when motion data at the primary TMD position is not available;
- temporal candidate derivation module (550) is further configured to select the at least a part of motion data of the secondary TMD position as the TMD candidate when the second prediction block at the secondary TMD position is available, particularly, when motion data at the secondary TMD position is available.
- the secondary TMD position is a bottom right central position inside the co-located block or an upper left central position inside the co-located block.
- the determination module is further configured to determine whether a third prediction block at an alternative TMD position is available or not when the number of the current available motion data candidates for the inter-prediction candidate list is smaller than the target number or when the second prediction block at the secondary TMD position is not available, particularly, when the motion data of the secondary TMD position is not available, wherein the current available motion data candidates for the inter-prediction candidate list further comprises the at least a part of motion data of the primary TMD position or the secondary TMD position and the alternative TMD position is also relative to the co-located block, particularly, the alternative TMD position is inside the co-located block; and
- temporal candidate derivation module is configured to select one or more from the group including the at least a part of motion data of the primary TMD position, the at least a part of motion data of the secondary TMD position and/or at least a part of motion data of the alternative TMD position as the TMD candidates when the third prediction block at the alternative TMD position is available.
- the inter-prediction candidate list is a merging candidate list, motion data of the primary TMD position and/or motion data of the secondary TMD position are selected as one or more temporal merging candidates by the temporal candidate derivation module; or
- the inter-prediction candidate list is an MVP candidate list
- motion vector data from motion data of the primary TMD position and/or motion vector data from motion data of the secondary TMD position are selected as one or more temporal motion vector predictor (MVP) candidates by the temporal candidate derivation module.
- MVP temporal motion vector predictor
- the target number is the preset maximum number of motion data candidates in the inter-prediction candidate list for the current block;
- the target number is a number of motion data candidates which is determined based on an index parsed from a received bitstream, wherein the index indicates a selected motion data candidate in the inter-prediction candidate list.
- the apparatus is in a mobile device, or a part of a mobile device.
- an embodiment of the present disclosure provides a video decoder for decoding video data, comprising:
- an entropy decoding module configured to obtain from a bitstream an index indicating a selected motion data candidate for a current block
- an inter-prediction module including the apparatus according to the second aspect or any possible embodiment of the second aspect and the inter-prediction module is configured to determine a prediction block, for example a prediction unit (PU) at least based on the selected motion data candidate included in an inter-prediction candidate list; and
- a prediction block for example a prediction unit (PU) at least based on the selected motion data candidate included in an inter-prediction candidate list;
- a reconstruction module configured to reconstruct the current block at least based on the prediction block.
- the inter-prediction module is configured to determine, by performing a motion prediction process for the current block using the inter-prediction candidate list and syntax elements (e.g. the index, MVD) obtained by the entropy decoding module, a motion data for the current block and determine, by performing a motion compensation process using the determined motion data, a prediction block, e.g. a prediction unit (PU) .
- syntax elements e.g. the index, MVD
- an embodiment of the present disclosure provides a video encoder for encoding video data, comprising:
- an inter-prediction module including the apparatus according to the second aspect or any possible embodiment of the second aspect and the inter-prediction module is configured to determine, by performing a motion compensation process, a prediction block, for example a prediction unit (PU) at least based on a selected motion data candidate included in an inter-prediction candidate list for a current block;
- a prediction block for example a prediction unit (PU) at least based on a selected motion data candidate included in an inter-prediction candidate list for a current block
- an entropy encoding module configured to include into a bitstream an index indicating the selected motion data candidate for the current block
- a reconstruction module configured to reconstruct the current block at least based on the prediction block and storing the reconstructed block in a memory.
- a method for derivation of one or more temporal merging candidates for a current block in video coding in which the temporal merging candidates are derived for inclusion in a merging candidate list for the current block.
- the method includes determining whether a first prediction block at a primary TMD position is available or not, wherein the primary TMD position is a bottom right neighboring position outside a co-located block, wherein the co-located block is a block in a reference picture having a same size, shape, and coordinates as the current block, and selecting motion data of the primary TMD position and/or motion data of a secondary TMD position as the temporal merging candidates when the first prediction block at the primary TMD position is available (particularly, the motion data of the primary TMD position is available) and when the number of current available merge candidates for the inter-prediction candidate list is smaller than a target number, wherein the secondary TMD position is a central position inside the co-located block.
- the current available merge candidates may include spatial merge candidates which currently already have derived during spatial merge candidates derivation and a temporal merge candidate which currently already has derived during temporal merge candidate derivation of the primary TMD position.
- the spatial merge candidates which currently already have derived during spatial merge candidates derivation may includes any one or combination of a left above merge candidate, an above merge candidate, a right above merge candidate, a left merge candidate and a below left merge candidate.
- a method for derivation of a temporal motion vector predictor (MVP) candidate for a current block in video coding in which the temporal MVP candidate is derived for inclusion in an MVP candidate list for the block.
- the method includes determining whether a first prediction block at a primary TMD position is available or not, wherein the primary TMD position is a bottom right neighboring position outside a co-located block, wherein the co-located block is a block in a reference picture having a same size, shape, and coordinates as the current block, and selecting motion vector data from motion data of the primary TMD position and/or motion vector data from motion data of a secondary TMD position as the temporal MVP candidates when the first prediction block at the primary TMD position is available (i.e. the motion data of the primary TMD position is available) and when the number of current available motion vector candidates for the inter-prediction candidate list is smaller than a target number, wherein the secondary TMD position is a central position inside the co-located block.
- MVP temporal motion vector predict
- the current available motion vector candidates may include spatial motion vector candidates which currently already have derived during spatial motion vector candidates derivation and a temporal motion vector candidate which currently already has derived during temporal motion vector candidate derivation of the primary TMD position.
- the spatial motion vector candidates which currently already have derived during spatial motion vector candidates derivation may includes an MVP candidate for left and/or an MVP candidate for above.
- a computer-readable storage medium having stored thereon instructions that when executed cause one or more processors configured to code video data is proposed.
- the instructions cause the one or more processors to perform a method according to the first aspect or any possible embodiment of the first aspect.
- a computer program comprising program code for performing the method according to the first aspect or any possible embodiment of the first aspect when executed on a computer is proposed.
- FIG. 1A is a block diagram illustrating a derivation process for merge candidates for constructing a merging candidate list
- FIG. 1 B is a block diagram illustrating a derivation process for motion vector prediction (MVP) candidates for constructing a motion vector predictor candidate list;
- MVP motion vector prediction
- FIG. 2A and FIG. 2B is two examples of decomposition of a largest coding unit (LCU) into coding units (CUs) ;
- FIG. 3 is a block diagram of illustrating spatial and temporal motion data positions for constructing a motion vector predictor (MVP) candidate list;
- MVP motion vector predictor
- FIG. 4 is a block diagram illustrating spatial and temporal motion data positions for constructing a merging candidate list
- FIG. 5 is a block diagram of an example digital system
- FIG. 6 is a block diagram of a video encoder
- FIG. 7 is a block diagram of a video decoder
- FIG. 8 is a flow diagram of a method for temporal motion data derivation in an encoder or decoder
- FIG. 9A, 9B, 9C and 9D is four examples LCU decomposition showing example temporal motion data positions for CUs
- FIG. 10 is a flow diagram of a method for temporal motion data derivation in an encoder or decoder
- FIG. 11 is a block diagram of an apparatus for temporal motion data derivation
- FIG. 12 is a block diagram of an illustrative digital system
- FIG. 13 is a block diagram of an illustrative mobile phone.
- This disclosure describes techniques for determining an inter-prediction candidate list, for example, a merge candidate list or an MVP candidate list for use in video coding.
- this disclosure describes techniques for derivation of one or more temporal motion data (TMD) candidates for a current block, the TMD candidates for inclusion in an inter-prediction candidate list for the current block, in order to reduce the possibility of additional zero motion candidates included in the inter-prediction candidate list.
- TMD temporal motion data
- the term “picture” may refer to a frame or a field of a frame.
- a frame is a complete image captured during a known time interval.
- HEVC High-Efficiency Video Coding
- JCT-VC Joint Collaboration Team on Video Coding
- VCEG ITU-T Video Coding Experts Group
- MPEG ISO/IEC Motion Picture Experts Group
- LCU largest coding unit
- a picture is divided into non-overlapping LCUs.
- an LCU plays a similar role in coding as the macroblock of H. 264/AVC, but it may be larger, e.g., 32 ⁇ 32, 64 ⁇ 64, etc.
- An LCU may be partitioned into coding units (CU) .
- a CU is a block of pixels within an LCU and the CUs within an LCU may be of different sizes.
- the partitioning is a recursive quadtree partitioning.
- the quadtree is split according to various criteria until a leaf is reached, which is referred to as the coding node or coding unit.
- the maximum hierarchical depth of the quadtree is determined by the size of the LCU and the size of the smallest CU (SCU) permitted.
- the coding node is the root node of two trees, a prediction tree and a transform tree.
- a prediction tree specifies the position and size of prediction units (PU) for a coding unit.
- a PU is the basic unit for carrying the information related to the prediction processes such as inter and intra-prediction. In general, a PU is not restricted to a square shape in order to facilitate partitioning that matches boundaries of real objects in a picture.
- a CU may be partitioned into one or more PUs.
- a transform tree specifies the position and size of transform units (TU) for a coding unit. A transform unit may not be larger than a coding unit.
- FIG. 2-A shows an example of an LCU of size 64 ⁇ 64 that is decomposed into CUs and PUs. In this example, the SCU size is 16 ⁇ 16.
- FIG. 2-B shows an example of an LCU of size 64 ⁇ 64 that is decomposed into CUs. In this example, the SCU size is 8 ⁇ 8.
- a co-located PU or temporally co-located PU is a rectangular or square area in a reference picture having the same coordinates, size, and shape of a PU in a picture currently being encoded or decoded, i.e., a PU for which a merging candidate list or a motion vector predictor (MVP) candidate list is being constructed.
- MVP motion vector predictor
- PU partitioning may change from LCU to LCU and from picture to picture.
- a co-located PU does not necessarily correspond to an actual PU of the reference picture. Rather, depending on the size, the co-located PU may overlap one actual PU, multiple actual PUs, portions of several actual PUs, a portion of an actual PU, etc. in the reference picture.
- a co-located CU or temporally co-located CU is a square area in a reference picture having the same coordinates, size, and shape of a CU in a picture currently being encoded or decoded, i.e., a CU for which a merging candidate list is being constructed.
- CU partitioning may change from LCU to LCU and from picture to picture.
- a co-located CU does not necessarily correspond to an actual CU of the reference picture. Rather, depending on the size, the co-located CU may overlap one actual CU, multiple actual CUs, portions of several actual CUs, a portion of an actual CU, etc. in the reference picture.
- the minimum PU size is 4 ⁇ 4, i.e., samples in a 4 ⁇ 4 region share a same set of motion data when the PU is inter-predicted, and an inter-predicted PU of a larger size can be treated as a multiple of 4 ⁇ 4 blocks which share the motion data of the PU.
- the motion data may be populated to the 4 ⁇ 4 block level regardless of PU size. In this way, the motion data from neighboring 4 ⁇ 4 blocks in the relevant locations can be fetched to derive the MVP or merging candidates without the need to know the actual neighboring PU sizes to compute the motion data location.
- the various motion data blocks specify the locations from which the neighboring motion data, both spatial and temporal, should be fetched.
- FIG. 3 illustrates the formation of an MVP candidate list for the current block 300 according to an embodiment of the present disclosure.
- the encoder forms an MVP candidate list based on neighboring SMD positions and TMD positions of a co-located block 302 as illustrated in the example of FIG. 3.
- the motion vectors for a motion data position are selected as an MVP from the motion data of the corresponding block which at (or contains or covers) the motion data position.
- the SMD positions to the left of the current block 300 are scanned bottom up, e.g., from the bottom left SMD position 304 to the left top SMD position 306, and the motion vector of the first SMD position on the left side having available motion data is chosen to be the first candidate MVP for the MVP candidate list.
- the upper side neighboring SMD positions are scanned right to left, e.g., from the top right SMD position 312, through the left top SMD position 310, ending with the top left SMD position 308.
- the motion vector of the first SMD position on the upper neighboring side having available motion data is chosen as the second candidate MVP in the MVP candidate list.
- the motion vector of the first SMD position on the upper neighboring side having available motion data with a motion vector of a different value from the first candidate MVP is chosen as the second candidate MVP in the MVP candidate list. If no spatial MVP candidate is found during the scan of the left-side SMD positions, then up to two MVP candidates may be selected from the top-side SMD positions. That is, the first available motion vector of the upper side is chosen as the first candidate MVP in the MVP candidate list and the second available motion vector different from the first is chosen as the second candidate MVP in the MVP candidate list.
- only one spatial MVP candidate is derived and selected.
- the availability of a block at the bottom right neighboring TMD position outside the co-located block 302 is first checked and the motion vector of the first prediction block is selected for the temporal candidate MVP if available.
- the availability of a block at the central TMD position of the co- located block 302 is further checked and the motion vector of the second prediction block is also selected for the temporal candidate MVP if available.
- the availability of the block at the central TMD position of the co-located block 302 is checked and the motion vector of the second prediction block is selected for the temporal candidate MVP if available.
- slice_temporal_mvp_enabled_flag is equal to 0, or the status of “used for long-term reference” between the reference picture of a prediction block and the reference picture of a current block are not the same, or a prediction block at position is intra coded, or is outside of the current LCU, the prediction block at position is not available. Otherwise, the prediction block at position is available.
- a pruning process may be carried out to remove any duplicated MVP candidates. Therefore, the MVP candidate list size may be 1, 2, or 3.
- the MVP candidate is added to the MVP candidate list in the corresponding position.
- this method allows selecting one or two temporal MVP candidates from two potential TMD candidates, which are derived based on two different TMD positions which are relative to the co-located CU.
- more meaningful temporal MVP candidates can be included in the MVP candidate list for the prediction of the current block.
- it reduces the possibility of adding additional zero motion candidates into the MVP candidate list, thus the coding performance of video data can be improved.
- FIG. 4 illustrates the formation of a merging candidate list for the current block 400 according to an embodiment of the present disclosure.
- the encoder forms a merging candidate list based on SMD positions of the current block 400 and TMD positions of a co-located block 402 as illustrated in the example of FIG. 4.
- the encoder forms a merging candidate list by considering merging candidates from the motion data positions depicted in FIG.
- SMD spatially neighboring motion data
- a left neighboring SMD position see 1 (A1)
- an above neighboring SMD position see 2 (B1)
- an right above neighboring SMD position see 3 (B0)
- a below left neighboring SMD position see 4 (A0)
- a left above neighboring SMD position see 5 (B2)
- the order of derivation is A1, B1, B0, A0 and B2.
- Position B2 is considered only when any block of position A1, B1, B0, and A0 is not available.
- the merge candidates with the number L may be selected among candidates located in the positions depicted in Figure 4, in which L may be 0, 1, 2, 3 or 4.
- L may be 1, 2, 3 or 4.
- the addition of the remaining candidates is subject to a redundancy check which ensures that candidates with same motion information are excluded from the list so that coding efficiency is improved.
- the availability of a block at the bottom right neighboring TMD position outside the co-located block 402 (see 6 (H) ) (namely a first prediction block or a first co-located prediction block) is first checked and the motion data of the first prediction block is selected for the temporal merging candidate if available.
- the availability of a block at the central TMD position of the co-located block 402 (see 7 (CR) ) (namely a second prediction block or a second co-located prediction block) is further checked and the motion data of the second prediction block is also selected for the temporal merging candidate if available.
- the block at the bottom right neighboring TMD position outside the co-located block 402 (see 6 (H) ) (namely the first prediction block or the first co-located prediction block) is un-available
- the availability of the block at the central TMD position of the co-located block 402 (see 7 (CR) ) (namely the second prediction block or the second co-located prediction block ) is checked and the motion data of the second prediction block is selected for the temporal merging candidate if available.
- slice_temporal_mvp_enabled_flag is equal to 0, or the status of “used for long-term reference” between the reference picture of a prediction block and the reference picture of a current block are not the same, or a prediction block at position is intra coded, or is outside of the current LCU, the prediction block at position is not available. Otherwise, the prediction block at position is available.
- a merging candidate includes motion vector information, prediction flag information, and reference picture index information for a candidate motion data position.
- a merging candidate may include sufficient entries to accommodate a bi-directionally predicted PU, i.e., entries for a forward motion vector, a backward motion vector, a forward reference picture index, a backward reference picture index, and a prediction flag indicating prediction direction, i.e., forward, backward, or bi-directional.
- the prediction flag may be composed of two prediction list utilization flags used to indicate which of two reference picture lists is to be used. Each reference picture index is an index into a respective one of the reference picture lists.
- the merging candidate entries for the prediction flag, the forward motion vector, and the forward reference picture index will be valid and the remaining entries may have placeholder values.
- the merging candidate entries for the prediction flag, the backward motion vector, and the backward reference picture index will be valid and the remaining entries may have placeholder values.
- all merging candidate entries will be valid.
- the merging candidate entries may be referred to according to their correspondence with one of two reference picture lists, list 0 and list 1.
- the forward motion vector may be referred to as the list 0 (or L0) motion vector
- the backward motion vector may be referred to as the list 1 (or L1) motion vector
- the two prediction list utilization flags be referred to as the list 0 (or L0) prediction list utilization flag and the list 1 (or L1) prediction list utilization flag
- the reference picture indices may be referred to as the list 0 (or L0) reference picture index and the list 1 (or L1) reference picture index.
- a pruning process is carried out to remove any duplicated merging candidates. If two or more merging candidates have the same motion vector (s) , prediction direction, and reference picture index (or indices) , the lowest order duplicated merging candidate is retained in the list and the others are removed.
- the merging candidate is added to the merging candidate list in the corresponding position.
- this method allows selecting one or two temporal merging candidates from two potential TMD candidates, which are derived based on two different TMD positions which are relative to the co-located CU.
- more meaningful temporal merging candidates can be included in the merging candidate list for the prediction of the current CU.
- it reduces the possibility of adding additional zero motion merging candidates into the merging candidate list, thus the coding performance of video data can be improved.
- FIG. 5 shows a block diagram of a digital system that includes a source digital system 500 that transmits encoded video sequences to a destination digital system 502 via a communication channel 516.
- the source digital system 500 includes a video capture component 504, a video encoder 506, and a transmitter 508.
- the video capture component 504 is configured to provide a video sequence to be encoded by the video encoder 506.
- the video capture component 504 may be, for example, a video camera, a video archive, or a video feed from a video content provider.
- the video capture component 504 may generate computer graphics as the video sequence, or a combination of live video, archived video, and/or computer-generated video.
- the video encoder 506 receives a video sequence from the video capture component 504 and encodes it for transmission by the transmitter 508.
- the video encoder 506 receives the video sequence from the video capture component 504 as a sequence of pictures, divides the pictures into largest coding units (LCUs) , and encodes the video data in the LCUs.
- the video encoder 506 may be configured to perform temporal motion data (TMD) candidate derivation during the encoding process as described herein. An example of the video encoder 506 is described in more detail herein in reference to FIG. 6.
- TMD temporal motion data
- the transmitter 508 transmits the encoded video data to the destination digital system 502 via the communication channel 516.
- the communication channel 516 may be any communication medium, or combination of communication media suitable for transmission of the encoded video sequence, such as, for example, wired or wireless communication media, a local area network, or a wide area network.
- the destination digital system 502 includes a receiver 510, a video decoder 512 and a display component 514.
- the receiver 510 receives the encoded video data from the source digital system 500 via the communication channel 516 and provides the encoded video data to the video decoder 512 for decoding.
- the video decoder 512 reverses the encoding process performed by the video encoder 506 to reconstruct the LCUs of the video sequence.
- the video decoder 512 may be configured to perform TMD candidate derivation during the decoding process as described herein. An example of the video decoder 512 is described in more detail below in reference to FIG. 7.
- the reconstructed video sequence is displayed on the display component 514.
- the display component 514 may be any suitable display device such as, for example, a touch screen, a plasma display, a liquid crystal display (LCD) , a light emitting diode (LED) display, etc.
- the source digital system 500 may also include a receiver and a video decoder and/or the destination digital system 502 may include a transmitter and a video encoder for transmission of video sequences both directions for video steaming, video broadcasting, and video telephony.
- the video encoder 506 and the video decoder 512 may perform encoding and decoding in accordance with one or more video compression standards.
- the video encoder 506 and the video decoder 512 may be implemented in any suitable combination of software, firmware, and hardware, such as, for example, one or more digital signal processors (DSPs) , microprocessors, application specific integrated circuits (ASICs) , field-programmable gate arrays (FPGAs) , etc.
- DSPs digital signal processors
- ASICs application specific integrated circuits
- FPGAs field-programmable gate arrays
- FIG. 6 shows a block diagram of an example video encoder 506.
- a coding control component (not shown) sequences the various operations of the LCU processing, i.e., the coding control component runs the main control loop for video encoding.
- the coding control component receives a digital video sequence and performs any processing on the input video sequence that is to be done at the picture level, such as determining the coding type (I, P, or B) of a picture based on the high level coding structure, e.g., IPPP, IBBP, hierarchical-B, and dividing a picture into LCUs for further processing.
- I, P, or B the high level coding structure
- the coding control component also may determine the initial LCU CU structure for each CU and provides information regarding this initial LCU CU structure to the various components of the video encoder as needed.
- the coding control component also may determine the initial PU and TU structure for each CU and provides information regarding this initial structure to the various components of the video encoder as needed.
- the LCU processing receives LCUs of the input video sequence from the coding control component and encodes the LCUs under the control of the coding control component to generate the compressed video stream.
- the CUs in the CU structure of an LCU may be processed by the LCU processing in a depth-first Z-scan order.
- the LCUs 600 from the coding control unit are provided as one input of an inter-prediction component 619 (particularly a motion estimation component 620) , as one input of an intra-prediction component 624, and to a positive input of a combiner 602 (e.g., adder or subtractor or the like) .
- the prediction mode of each picture as selected by the coding control component is provided to a mode selector component and the entropy encoder 634.
- the storage component 618 provides reference data to the motion estimation component 620 and to the motion compensation component 622.
- the reference data may include one or more previously encoded and decoded CUs, i.e., reconstructed CUs.
- the motion estimation component 620 provides motion data information to the motion compensation component 622 and provides motion data information or index indicating motion data information to the entropy encoder 634. More specifically, the motion estimation component 620 performs tests on CUs in an LCU based on multiple inter-prediction modes (e.g., skip mode, merge mode, and AMVP mode) and transform block sizes using reference picture data from storage 618 to choose the best motion vector (s) from the candidate list /prediction mode based on a rate distortion coding cost. To perform the tests, the motion estimation component 620 may begin with the CU structure provided by the coding control component.
- inter-prediction modes e.g., skip mode, merge mode, and AMVP mode
- the motion estimation component 620 may divide each CU indicated in the CU structure into PUs according to the unit sizes of prediction modes and into transform units according to the transform block sizes and calculate the coding costs for each prediction mode and transform block size for each CU.
- the motion estimation component 620 may also compute CU structure for the LCU and PU/TU partitioning structure for a CU of the LCU by itself.
- the prediction modes considered by the motion estimation component 620 may be merge mode, skip mode, and AMVP mode.
- the motion estimation component 620 constructs a skip mode merging candidate list at the CU level.
- merge mode the motion estimation component 620 constructs a merging candidate list for each CU or for each PU in the CU.
- AMVP mode the motion estimation component 620 constructs an MVP candidate list for each CU or for each PU.
- the SMD positions and the ordering of the MVP candidates in the MVP candidate list are assumed to be as shown in FIG. 3.
- the SMD positions and the ordering of the merging candidates in the merging candidate list are assumed to be as shown in FIG. 4.
- the derivation of the spatial merging candidates, the spatial MVP candidates, and the criteria for availability may be as described in combination of Figs. 3, 4, 8 and 10.
- One of ordinary skill in the art will understand that different SMD positions, different derivations, and/or different ordering may be used.
- the derivation of the temporal merging candidate for each candidate list may be performed as per methods described herein.
- the motion estimation component 620 For each PU of a CU, the motion estimation component 620 computes coding costs for each entry in the merging candidate list and selects the entry with the best result. The coding cost of this entry is used by the motion estimation component 620 in prediction mode selection. For each PU of the CU, the motion estimation component 620 determines the best motion vectors from the MVP candidate list (s) based on coding costs, and uses the best coding cost for prediction mode selection. For each PU in the CU, the motion estimation component selects the better of merge mode and AMVP mode based on the coding costs. The sum of the costs of the selected modes for all PUs in the CU is the RD cost for the CU in inter-predicted mode.
- the motion estimation component 620 also computes coding costs for each entry in the skip mode merging candidate list and selects the entry with the best result.
- the coding cost of this entry is used by the motion estimation component 620 in prediction mode selection between CU-level skip mode and AMVP mode.
- the motion estimation component 620 provides the selected motion vector (MV) or vectors and the selected prediction mode for each inter-predicted PU of a CU to the motion compensation component 622 and information indicating the selected motion vector (MV) , reference picture index (indices) , prediction direction (if any) to the entropy encoder 634. If merge mode or skip mode provides the best motion vector (s) /prediction mode for a PU or CU based on a coding cost, the motion estimation component 620 also indicates to the entropy encoder 634 to encode a merge (skip) flag indicating that merge (skip) mode is used for a PU (CU) and to encode an index indicating the entry that provided the best coding cost in the merging candidate list. The index may not be encoded if the candidate list size is one; instead it is inferred to be 0.
- the motion estimation component 620 indicates to the entropy encoder 634 to encode a merge flag indicating that merge mode was not used for the PU.
- a merge flag is encoded for each inter-predicted PU unless skip mode is selected for the CU containing the PU.
- the motion estimation component 620 indicates to the entropy encoder 634 to encode an index indicating the entry that provided the best coding cost in the MVP candidate list (s) .
- the motion compensation component 622 provides motion compensated inter-prediction information to the mode decision component 626 that includes motion compensated inter-predicted PUs, the selected inter-prediction modes for the inter-predicted PUs, and corresponding transform block sizes.
- the coding costs of the inter-predicted PUs are also provided to the mode decision component 626.
- the intra-prediction component 624 provides intra-prediction information to the mode decision component 626 that includes intra-predicted PUs and the corresponding intra-prediction modes. That is, the intra-prediction component 624 performs intra-prediction in which tests based on multiple intra-prediction modes and transform unit sizes are performed on CUs in an LCU using previously encoded neighboring PUs from the buffer 628 to choose the best intra-prediction mode for each PU in the CU based on a coding cost. To perform the tests, the intra-prediction component 624 may begin with the CU structure provided by the coding control.
- the intra-prediction component 624 may divide each CU indicated in the CU structure into PUs according to the unit sizes of the intra-prediction modes and into transform units according to the transform block sizes and calculate the coding costs for each prediction mode and transform block size for each PU.
- the mode decision component 626 selects between the motion-compensated inter-predicted PUs from the motion compensation component 622 and the intra-predicted PUs from the intra-prediction component 624 based on the coding costs of the PUs and the picture prediction mode provided by the mode selector component. The decision is made at CU level. Based on the decision as to whether a CU is to be intra-or inter-coded, the intra-predicted PUs or inter-predicted PUs are selected, accordingly.
- the output of the mode decision component 626 i.e., the predicted PU, is provided to a negative input of the combiner 602and to a delay component 630.
- the associated transform block size is also provided to the transform component 604.
- the output of the delay component 630 is provided to another combiner (i.e., an adder) 638.
- the combiner 602 subtracts the predicted PU from the current PU to provide a residual PU to the transform component 604.
- the resulting residual PU is a set of pixel difference values that quantify differences between pixel values of the original PU and the predicted PU.
- the residual blocks of all the PUs of a CU form a residual CU block for the transform component 604.
- the transform component 604 performs block transforms on the residual CU to convert the residual pixel values to transform coefficients and provides the transform coefficients to a quantize component 606.
- the transform component 604 receives the transform block sizes for the residual CU and applies transforms of the specified sizes to the CU to generate transform coefficients.
- the quantize component 606 quantizes the transform coefficients based on quantization parameters (QPs) and quantization matrices provided by the coding control component and the transform sizes.
- QPs quantization parameters
- the quantized transform coefficients are taken out of their scan ordering by a scan component 608 and arranged by significance, such as, for example, beginning with the more significant coefficients followed by the less significant.
- the ordered quantized transform coefficients for a CU provided via the scan component 608 along with header information for the CU are coded by the entropy encoder 634, which provides a compressed bitstream to a video buffer 636 for transmission or storage.
- the header information may include the prediction mode used for the CU. If the CU uses merge mode, and all the transform coefficients after quantization are all zero, the CU is coded with skip mode, a skip flag equal to one is encoded into a bitstream, and an index for indicating the merging candidate used for the skip mode in the merging candidate list is also encoded unless the size of the merging candidate list is one. Otherwise, a merge flag is encoded for each PU of the CU unless the CU is intra-coded.
- an index for indicating the merging candidate used for prediction of the PU in the merging candidate list is also encoded unless the size of the merging candidate list is one. Otherwise, if a PU is encoded with AMVP mode, motion data for the PU, including motion vector difference, reference picture index (indices) , prediction direction flag, and an index for indicating the MVP candidate used for prediction of the PU in the MVP candidate list, is encoded into bit stream.
- the entropy encoder 634 also encodes the CU and PU structure of each LCU.
- the LCU processing includes an embedded decoder.
- the embedded decoder provides the same utility to the video encoder.
- Knowledge of the reconstructed input allows the video encoder to transmit the appropriate residual energy to compose subsequent pictures.
- the ordered quantized transform coefficients for a CU provided via the scan component 608 are returned to their original post-transform arrangement by an inverse scan component 610, the output of which is provided to a dequantize component 612, which outputs a reconstructed version of the transform result from the transform component 604.
- the dequantized transform coefficients are provided to the inverse transform component 614, which outputs estimated residual information which represents a reconstructed version of a residual CU.
- the inverse transform component 614 receives the transform block size used to generate the transform coefficients and applies inverse transform (s) of the specified size to the transform coefficients to reconstruct the residual values.
- the reconstructed residual CU is provided to the combiner 638.
- the combiner 638 adds the delayed selected CU to the reconstructed residual CU to generate an unfiltered reconstructed CU, which becomes part of reconstructed picture information.
- the reconstructed picture information is provided via a buffer 628 to the intra-prediction component 624 and to an in-loop filter component 616.
- the in-loop filter component 616 applies various filters to the reconstructed picture information to improve the reference picture used for encoding/decoding of subsequent pictures.
- the in-loop filter component 616 may, for example, adaptively apply low-pass filters to block boundaries according to the boundary strength to alleviate blocking artifacts causes by the block-based video coding.
- the filtered reference data is provided to storage component 618.
- a non-transform based encoder 506 can quantize or dequantize the residual signal directly without the transform component 604 or the inverse transform component 614 for certain blocks or frames. For example, if no residual block generated for certain blocks or frames at the component 602, the encoding processing can be performed without the transform component 604, the inverse transform component 614, the quantize component 606 or/and the dequantize component 612 for certain blocks or frames.
- the reconstructed picture information is stored in the storage 618 without the in-loop filter component 616.
- an encoder 506 can have the quantization component 606 and the dequantization component 612 combined into a single component.
- FIG. 7 shows a block diagram of an example video decoder 512.
- the video decoder operates to reverse the encoding operations, i.e., entropy coding, quantization, transformation, and prediction, performed by the video encoder of FIG. 6 to regenerate the pictures of the original video sequence.
- entropy coding i.e., quantization, transformation, and prediction
- the entropy decoding component 700 receives an entropy encoded (compressed) video bit stream and reverses the entropy coding to recover the encoded PUs and header information such as the prediction modes and the encoded CU and PU structures of the LCUs, skip flags, merge flags, merge indices, etc. For each inter-predicted PU, unless skip mode is indicated, the entropy decoding component 700 decodes a merge flag from the bit stream.
- the entropy decoding component 700 decodes, from the bit stream, a reference picture index (or indices) , MVDs (motion vector difference) , and an index (or indices) for indicating the selected MVP candidate used for the PU in the MVP candidate list (s) .
- the entropy decoding component 700 provides such information to the inter-prediction component 709.
- the inter-prediction component 709 constructs an MVP candidate list (s) for the PU and then obtains the motion vector (s) according to the indicated MVP candidate (s) and the decoded MVDs. Construction of an MVP candidate list is previously described in reference to the encoder of FIG. 6.
- the entropy decoding component 700 decodes, from the bit stream, an index for indicating the merging candidate used for the PU in the merging candidate list, if the index is in the bit stream. If no index is present, the index is assumed to be zero.
- the entropy decoding component 700 provides such information to the inter-prediction component 709.
- the inter-prediction component 709 constructs the merging candidate list for the PU. Construction of the merging candidate list is previously described in reference to the encoder of FIG. 6.
- the motion compensation component 710 is provided with the motion vector (s) and reference picture index (or indices) from the indicated merging candidate in the merging candidate list.
- the entropy decoding component 700 decodes an index indicating the selected candidate in the merging candidate list from the bit stream, if the index is in the bit stream. If no index is present, the index is assumed to be zero.
- the entropy decoder provides the index to the inter-prediction component 709.
- a merging candidate list may be constructed for the CU by the inter-prediction component 709, and the motion vector (s) and reference picture index (or indices) from the indicated merging candidate in the merging candidate list for skip mode is provided to the motion compensation component 710. Construction of the merging candidate list for skip mode is previously described in reference to the encoder of FIG. 6. Reference can be made to the previous description, it is not repeated here.
- the inverse quantization component 702 de-quantizes the quantized transform coefficients of the residual CU.
- the inverse transform component 704 transforms the frequency domain data from the inverse quantization component 702 back to the residual CU. That is, the inverse transform component 704 applies an inverse unit transform, i.e., the inverse of the unit transform used for encoding, to the de-quantized residual coefficients to produce the residual CUs.
- a residual CU supplies one input of the addition component 706.
- the other input of the addition component 706 comes from the mode switch 708.
- the mode switch 708 selects predicted PUs from the motion compensation component 710 and when an intra-prediction mode is signaled, the mode switch selects predicted PUs from the intra-prediction component 714.
- the motion compensation component 710 receives reference data from storage 712 and applies the motion compensation computed by the encoder and transmitted in the encoded video bit stream to the reference data to generate a predicted PU. That is, the motion compensation component 710 uses the motion vector (s) and the reference data to generate a predicted PU.
- the intra-prediction component 714 receives reference data from previously decoded PUs of a current picture from the picture storage and applies the intra-prediction computed by the encoder as signaled by the intra-prediction mode transmitted in the encoded video bit stream to the reference data to generate a predicted PU.
- the addition component 706 generates a decoded CU by adding the predicted PU selected by the mode switch 708 and the residual CU.
- the output of the addition component 706 supplies the input of the in-loop filter component 716.
- the in-loop filter component 716 performs the filtering as the encoder.
- the output of the in-loop filter component 716 is the decoded pictures of the video bit stream. Further, the output of the in-loop filter component 716 is stored in storage 712 to be used as reference data.
- the video decoder 512 can be used to decode the compressed bitstream.
- the decoder 512 can produce the output video stream without the in-loop filter 716.
- the decoding processing for the certain blocks or frames can be performed without the inverse quantization component 702, and/or the inverse transform component 704.
- Fig. 8 is a flow diagram of an example method for derivation of one or more temporal motion data (TMD) candidate according to an embodiment.
- the method may be used as part of the construction of an inter-prediction candidate list, i.e., a merging candidate list or an MVP list, in both an encoder and a decoder.
- an inter-prediction candidate list i.e., a merging candidate list or an MVP list
- the method uses three TMD positions, a primary TMD position that is the bottom right neighboring position outside the co-located CU, a secondary TMD position that is the bottom right central TMD position within the co-located CU, and an alternative TMD position that may be considered if no enough candidates available for the inter-prediction candidate list.
- the alternative TMD position may be the upper left TMD position within the co-located CU.
- FIG. 9A shows an example partitioning of an LCU with the three TMD positions.
- the alternative TMD positions may include one or more from the following: the upper left TMD position within the co-located CU, the bottom right position inside the co-located CU and the upper left central TMD position within the co-located CU as shown in FIG. 9B.
- the TMD positions are defined as follows. Let (xCb, yCb) be the luminance coordinates of the upper-left corner of the current CU in the current picture, and (cuWidth, cuHeight) be the size of the current CU.
- the upper left central TMD position is defined as the luminance sample position in the co-located picture with the coordinates (xCb+cuWidth/2-1, yCb+cuHeight/2-1) .
- the bottom right central TMD position is defined as the luminance sample position in the co-located picture with the coordinates (xCb+cuWidth/2, yCb+cuHeight/2) .
- the bottom right neighboring TMD position outside the co-located CU is defined as the luminance sample position in the co-located picture with the coordinates (xCb+cuWidth, yCb+cuHeight) .
- the alternative TMD position of FIG. 9A i.e., the upper left position inside the co-located block, is defined as the luminance sample position in the co-located picture with the coordinates (xCbP, yCb) .
- Motion data for a TMD position is copied from the CU at (or containing) the TMD position in the co-located picture.
- the primary TMD position i.e., the bottom right neighboring TMD position outside the co-located CU
- the availability 802 of the prediction block at the bottom right neighboring TMD position is then determined.
- the bottom right neighboring TMD position is within the current LCU for CU0, CU1, CU2, and CU5; the bottom right neighboring TMD position is outside the current LCU for CU3, CU4, CU6, CU7, and CU8.
- a prediction block at a TMD position may not be available, for example, if the block at or containing the TMD position was intra-predicted or is outside the current slice or picture.
- the motion data of the prediction block at the bottom right neighboring TMD position (i.e. the motion data of the bottom right neighboring TMD position) is returned 804 to be used as the TMD candidate in the inter-prediction candidate list being constructed.
- the current available motion data candidates may refer to a plurality of motion data candidates which have been derived until the time when the temporal candidate derivation of the bottom right neighboring TMD position is performed and motion data of the bottom right neighboring TMD position is available. As seen from FIG. 3 or 4, the temporal candidate derivation is performed after the spatial candidate derivation is performed.
- the current available motion data candidates for the inter-prediction candidate list may refer to a plurality of motion data candidates which are available or possible for inclusion in the inter-prediction candidate list after the spatial candidates derivation is performed and the temporal candidate derivation of the bottom right neighboring TMD position is also performed.
- motion data (or motion vector data from motion data) of the primary TMD position is selected 820 as the TMD candidate. Otherwise, the secondary TMD position, i.e., the bottom right central TMD position, is determined 808. The availability of the prediction block at the bottom right central TMD position is then determined 810. If the prediction block at the bottom right central TMD position is available (810, YES) , the motion data of the prediction block at the bottom right central TMD position (i.e. the motion data of the bottom right central TMD position) is returned 812 to be used as the TMD candidate in the inter-prediction candidate list being constructed.
- the alternative TMD position i.e., the upper left TMD position inside the co-located CU, is determined 814.
- the availability 816 of the prediction block at the upper left TMD position is then determined. If the prediction block at the upper left TMD position is available (816, YES) , the motion data of the prediction block at the upper left TMD position (i.e. the motion data of the upper left TMD position) is returned 818 to be used as the TMD candidate in the inter-prediction candidate list being constructed.
- motion data (or motion vector data from motion data) of the bottom right neighboring TMD position is selected 820 as the TMD candidates, or both motion data (or motion vector data from motion data) of the bottom right neighboring TMD position and motion data (or motion vector data from motion data) of the bottom right central TMD position are selected 820 as the TMD candidates, or both motion data (or motion vector data from motion data) of the bottom right neighboring TMD position and motion data (or motion vector data from motion data) of upper left TMD position are selected 820 as the TMD candidates, or motion data (or motion vector data from motion data) of the bottom right neighboring TMD position, motion data (or motion vector data from motion data) of the bottom right central TMD position and motion data (or motion vector data from motion data) of the upper left TMD position are selected 820 as the TMD candidates.
- the secondary TMD position i.e., the bottom right central TMD position
- the availability of the prediction block at the bottom right central TMD position is then determined 810. If the prediction block at the bottom right central TMD position is available (810, YES) , the motion data of the bottom right central TMD position is returned 812 to be used as the TMD candidate in the inter-prediction candidate list being constructed. If the prediction block at the bottom right central TMD position is not available (810, NO) , then the alternative TMD position, i.e., the upper left TMD position inside the co-located CU, is determined 814.
- the availability 816 of the prediction block at the upper left TMD position is then determined. If the prediction block at the upper left TMD position is available, the motion data of the upper left TMD position is returned 818 to be used as the TMD candidate in the inter-prediction candidate list being constructed. Otherwise, an indication 820 that no TMD candidate is available is returned.
- the available motion data candidates for the inter-prediction candidate list are not enough at the time when the temporal candidate derivation of the bottom right neighboring TMD position is performed and motion data of the primary TMD position is available (at 806, “NO” ) , then the available motion data candidates for the inter-prediction candidate list are still not enough at the time when the temporal candidate derivation of the primary and secondary TMD positions are both performed and motion data of the primary TMD position is available but motion data of the secondary TMD position is not available (at 810, “NO” ) .
- the alternative TMD position (s) also may be the bottom right position inside the co-located CU and/or the upper left central position inside the co-located CU as shown in FIG. 9B, also may be a neighboring position outside the co-located block (not illustrated in figures) .
- Fig. 10 is a flow diagram of another example method for derivation of one or more temporal motion data (TMD) candidate according to an embodiment.
- the method may be used as part of the construction of an inter-prediction candidate list, i.e., a merging candidate list or an MVP list, in both an encoder and a decoder.
- an inter-prediction candidate list i.e., a merging candidate list or an MVP list
- the method uses three TMD positions, a primary TMD position, i.e., the bottom right neighboring TMD position outside the co-located CU, a secondary TMD position, i.e., the upper left central TMD position within the co-located CU, and an alternative TMD position (if considered) .
- FIG. 9C shows an example partitioning of an LCU and the three TMD positions relative to the example partitioning.
- the alternative TMD position is a bottom right position inside the co-located CU.
- the primary TMD position i.e., the bottom right neighboring TMD position outside the co-located CU
- the availability 1002 of the prediction block at the bottom right neighboring TMD position is then determined.
- the bottom right neighboring TMD position is within the current LCU for CU0, CU1, CU2, and CU5; the bottom right neighboring TMD position is outside the current LCU for CU3, CU4, CU6, CU7, and CU8.
- a prediction block at a TMD position may not be available, for example, if the prediction block at or containing the TMD position was intra-predicted or is outside the current slice or picture. If the prediction block at the bottom right neighboring TMD position is available, the motion data of the bottom right neighboring TMD position is returned 1004 to be used as the TMD candidate in the inter-prediction candidate list being constructed.
- the secondary TMD position i.e., the upper left central TMD position
- the availability of the prediction block at the upper left central TMD position is then determined 1010. If the prediction block at the upper left central TMD position is available, the motion data of the upper left central TMD position is returned 1012 to be used as the TMD candidate in the inter-prediction candidate list being constructed.
- the motion data of the primary TMD position is selected 1020 as the TMD candidate and the inter-prediction candidate list is stored.
- the method when the method is performed at the encoder or decoder for constructing a merging candidate list, it is determined 1006 whether the number of the current available candidates reaches to the maximum number of merge candidate (e.g. MaxNumMergeCand) . if the number of candidates does not reach to the maximum number of merge candidate, then the secondary TMD position, i.e., the upper left central TMD position, is determined 1008. The availability of the prediction block at the upper left central TMD position is then determined 1010. If the prediction block at the upper left central TMD position is available, the motion data of the upper left central TMD position is returned 1012 to be used as the TMD candidate in the inter-prediction candidate list being constructed.
- the method is performed at the encoder for constructing an MVP candidate list, the details is similar and not repeated here.
- the method when the method is performed at the decoder, it is determined whether the number of the current available candidates reaches to a desired number of motion data candidates, in which the desired number of motion data candidates is determined based on an index parsed from the received bitstream by the decoder, and the index indicates a selected motion data candidate in the inter-prediction candidate list.
- the method is performed at the decoder for constructing an MVP candidate list, for example, if the index is “0” , it indicates the selected motion data candidate is the candidate at the index location 0 in the MVP candidate list, correspondingly the desired number of candidates is determined as “1” ; and if the index is “1” , it indicates the selected motion data candidate is the candidate at the index location 1 in the MVP candidate list , correspondingly the desired number of candidates is determined as “2” .
- the method is performed at the decoder for constructing merging candidate list, for example, as shown in the following table, if the index is “1” , it indicates the selected motion data candidate is the candidate at the index location 0 in the merging candidate list, correspondingly the desired number of candidates is determined as “1” ; and if the index is “000001” , it indicates the selected motion data candidate is the candidate at the index location 5 in the merging candidate list , correspondingly the desired number of candidates is determined as “5” .
- the alternative TMD position i.e., the bottom right TMD position inside the co-located CU, is determined 1014.
- the availability 1016 of the prediction block at the bottom right TMD position is then determined. If the prediction block at the bottom right TMD position is available, the motion data of the bottom right TMD position is returned 1018 to be used as the TMD candidate in the inter-prediction candidate list being constructed.
- an indication 1020 that no TMD candidate is available is returned, or motion data of the bottom right neighboring TMD position is selected 1020 as the TMD candidates, or both motion data of the bottom right neighboring TMD position and motion data of the upper left central TMD position are selected 1020 as the TMD candidates, or both motion data of the bottom right neighboring TMD position and motion data of bottom right TMD position are selected 1020 as the TMD candidates, or motion data of the bottom right neighboring TMD position, and motion data of the upper left central TMD position and motion data of the bottom right TMD position are selected 1020 as the TMD candidates.
- FIG. 10 Other detail of FIG. 10 is similar with the description of FIG. 8 and not repeated here. It can be understood that as shown in FIG. 9D, the alternative TMD positions with the co-located LCU other than those described herein may be used in other embodiments.
- FIG. 8 or 10 is intended for illustrative purposes. Other embodiments could involve performing the illustrated operations in any of various ways, performing fewer or additional operations, and/or varying the order in which operations are performed.
- a non-transitory processor-readable medium stores instructions which, when executed by one or more processors, cause the one or more processors to perform a method as disclosed herein.
- Fig. 11 is a block diagram of an apparatus for derivation of one or more temporal motion data (TMD) candidates for a current block in video encoding or video decoding, the TMD candidates for inclusion in an inter-prediction candidate list for the current block.
- the apparatus 1100 includes a determination module 1102, executing the operations disclosed in one or more of steps 800, 802, 806, 808, 810, 814 and 816 in Fig. 8 or the operations disclosed in one or more of steps 1000, 1002, 1006, 1008, 1010, 1014 and 1016 in Fig. 10, coupled to a temporal candidate derivation module 1104, executing the operation disclosed in step 820 in Fig. 8 or the operation disclosed in step 1020.
- modules of the apparatus 1100 may be implemented in hardware or circuitry (e.g. in one or more chipsets, microprocessors, application-specific integrated circuits (ASIC) , field-programmable gate arrays (FPGAs) , dedicated logic circuitry, or combinations thereof) so as to derive of one or more temporal motion data (TMD) candidates for a current block in video encoding or video decoding.
- TMD temporal motion data
- the determination module 1102 is implemented in circuitry, such as a processor, that is configured to perform the determining steps as disclosed herein.
- processor-executable instructions to configure a processor to perform encoding operations are stored in a non-transitory processor-readable medium.
- the non-transitory medium could include, in the memory for example, one or more solid-state memory devices and/or memory devices with movable and possibly removable storage media.
- the temporal candidate derivation module 1104 is implemented in circuitry, such as a processor, that is configured to perform various operations of temporal candidate derivation as disclosed herein.
- processor-executable instructions to configure a processor to perform operations of the temporal candidate derivation 1104 are stored in a non-transitory processor-readable medium, examples of which are described above.
- the apparatus 1100 could implement any of various other features that are disclosed herein.
- the determination module 1102, and/or the temporal candidate derivation module 1104 could be configured to implement any one or more of the features listed or otherwise described above with reference to Fig. 8 or 10.
- the functionality of the determination module 1102, and/or the temporal candidate derivation module 1104 described herein may be fully or partially implemented in hardware or alternatively in software, for example in modules stored in a memory and executed by a processor (s) .
- An apparatus could therefore include a processor, and a memory coupled to the processor, storing instructions which, when executed by the processor, cause the processor to perform the functionality and/or embodiments described above in relation to the determination module 1102, and/or the temporal candidate derivation module 1104 described above.
- FIG. 12 is a block diagram of an example of a digital system 1200 that can implement the encoder or decoder described herein.
- the digital system 1200 can implement one or both of the source digital system 500 and the destination digital system 502 of FIG. 5.
- the digital system 1200 can be in the form of a computing system including multiple computing devices, or in the form of a single computing device, for example, a mobile phone, a tablet computer, a laptop computer, a notebook computer, a desktop computer, and the like.
- a processer 1202 in the digital system 1200 can be a central processing unit.
- the processer 1202 can be any other type of device, or multiple devices, capable of manipulating or processing information now-existing or hereafter developed.
- the disclosed implementations can be practiced with a single processor as shown, e.g., the processer 1202, advantages in speed and efficiency can be achieved using more than one processor.
- a memory 1204 in the digital system 1200 can be a read only memory (ROM) device or a random access memory (RAM) device in an implementation. Any other suitable type of storage device can be used as the memory 1204.
- the memory 1204 can include code and data 1206 that is accessed by the processer 1202 using a bus 212.
- the memory 1204 can further include an operating system 1208 and application programs 210, the application programs 210 including at least one program that permits the processer 1202 to perform the methods described here.
- the application programs 210 can include applications 1 through N, which further include a video coding application that performs the methods described here.
- the digital system 1200 can also include additional memory in the form of a secondary storage 214, which can, for example, be a memory card used with a mobile computing device. Because the video communication sessions may contain a significant amount of information, they can be stored in whole or in part in the secondary storage 214 and loaded into the memory 1204 as needed for processing.
- the digital system 1200 can also include one or more output devices, such as a display 218.
- the display 218 may be, in one example, a touch sensitive display that combines a display with a touch sensitive element that is operable to sense touch inputs.
- the display 218 can be coupled to the processer 1202 via the bus 212.
- Other output devices that permit a user to program or otherwise use the digital system 1200 can be provided in addition to or as an alternative to the display 218.
- the output device is or includes a display
- the display can be implemented in various ways, including by a liquid crystal display (LCD) , a cathode-ray tube (CRT) display or light emitting diode (LED) display, such as an organic LED (OLED) display.
- LCD liquid crystal display
- CRT cathode-ray tube
- LED light emitting diode
- OLED organic LED
- the digital system 1200 can also include or be in communication with an image-sensing device 1220, for example a camera, or any other image-sensing device 1220 now existing or hereafter developed that can sense an image such as the image of a user operating the digital system 1200.
- the image-sensing device 1220 can be positioned such that it is directed toward the user operating the digital system 1200.
- the position and optical axis of the image-sensing device 1220 can be configured such that the field of vision includes an area that is directly adjacent to the display 218 and from which the display 218 is visible.
- the digital system 1200 can also include or be in communication with a sound-sensing device 1222, for example a microphone, or any other sound-sensing device now existing or hereafter developed that can sense sounds near the digital system 1200.
- the sound-sensing device 1222 can be positioned such that it is directed toward the user operating the digital system 1200 and can be configured to receive sounds, for example, speech or other utterances, made by the user while the user operates the digital system 1200.
- FIG. 12 depicts the processer 1202 and the memory 1204 of the digital system 1200 as being integrated into a single unit, other configurations can be utilized.
- the operations of the processer 1202 can be distributed across multiple machines (each machine having one or more of processors) that can be coupled directly or across a local area or other network.
- the memory 1204 can be distributed across multiple machines such as a network-based memory or memory in multiple machines performing the operations of the digital system 1200.
- the bus 212 of the digital system 1200 can be composed of multiple buses.
- the secondary storage 214 can be directly coupled to the other components of the digital system 1200 or can be accessed via a network and can comprise a single integrated unit such as a memory card or multiple units such as multiple memory cards.
- the digital system 1200 can thus be implemented in a wide variety of configurations.
- FIG. 13 is a block diagram of a mobile phone that may be configured to use techniques described herein.
- the signal processing unit (SPU) 1302 includes a digital signal processing system (DSP) that includes embedded memory and security features.
- the analog baseband unit 1304 receives a voice data stream from the handset microphone 1313a and sends a voice data stream to the handset mono speaker 1313b.
- the analog baseband unit 1304 also receives a voice data stream from the microphone 1314 a or 1332 a and sends a voice data stream to the mono headset 1314 b or wireless headset 1332 b.
- the analog baseband unit 1304 and the SPU 1302 may be separate ICs.
- the analog baseband unit 1304 does not embed a programmable processor core, but performs processing based on configuration of audio paths, filters, gains, etc being setup by software running on the SPU 1302.
- the display 1320 may display pictures and video sequences received from a local camera 1328, or from other sources such as the USB 1326 or the memory 1312.
- the SPU 1302 may also send a video sequence to the display 1320 that is received from various sources such as the cellular network via the RF transceiver 1306 or the Bluetooth interface 1330.
- the SPU 1302 may also send a video sequence to an external video display unit via the encoder unit 1322 over a composite output terminal 1324.
- the encoder unit 1322 may provide encoding according to PAL/SECAM/NTSC video standards.
- the SPU 1302 includes functionality to perform the computational operations required for video encoding and decoding.
- the SPU 1302 is configured to perform computational operations for applying one or more techniques for temporal motion data candidate derivation during the encoding process as described herein.
- Software instructions implementing all or part of the techniques may be stored in the memory 1312 and executed by the SPU 1302, for example, as part of encoding video sequences captured by the local camera 1328.
- the SPU 1302 is also configured to perform computational operations for applying one or more techniques for temporal motion data candidate derivation as described herein as part of decoding a received coded video sequence or decoding a coded video sequence stored in the memory 1312.
- Software instructions implementing all or part of the techniques may be stored in the memory 1312 and executed by the SPU 1302.
- Embodiments of the methods, encoders, and decoders described herein may be implemented in hardware, software, firmware, or any combination thereof. If completely or partially implemented in software, the software may be executed in one or more processors, such as a microprocessor, application specific integrated circuit (ASIC) , field programmable gate array (FPGA) , or digital signal processor (DSP) .
- the software instructions may be initially stored in a computer-readable medium and loaded and executed in the processor.
- the software instructions may also be sold in a computer program product, which includes the computer-readable medium and packaging materials for the computer-readable medium.
- the software instructions may be distributed via removable computer readable media, via a transmission path from computer readable media on another digital system, etc. Examples of computer-readable media include non-writable storage media such as read-only memory devices, writable storage media such as disks, flash memory, memory, or a combination thereof.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
L'invention concerne un procédé de dérivation d'un ou plusieurs candidats de données de mouvement temporel (TMD) d'un bloc en cours dans un codage vidéo ou un décodage vidéo. On détermine si un premier bloc de prédiction à une position de TMD primaire est disponible, la position de TMD primaire constituant une position de voisinage inférieure droite à l'extérieur d'un bloc co-localisé ; et des données de mouvement de la position de TMD primaire et/ou des données de mouvement d'une position de TMD secondaire peuvent être sélectionnées en tant que candidats de TMD lorsque le premier bloc de prédiction au niveau de la position de TMD primaire est disponible et lorsque le nombre de candidats de données de mouvement disponibles en cours d'une liste de candidats de prédiction inter est inférieur à un nombre cible, la position de TMD secondaire étant une position centrale à l'intérieur du bloc co-localisé. Ledit procédé permet de fournir des candidats de données de mouvement plus significatives à inclure dans la liste de candidats de prédiction inter pour le bloc en cours, ce qui permet d'améliorer les performances de codage de données vidéo.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/105133 WO2019061537A1 (fr) | 2017-09-30 | 2017-09-30 | Procédé et appareil de dérivation de candidats de données de mouvement temporel dans un codage vidéo |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/105133 WO2019061537A1 (fr) | 2017-09-30 | 2017-09-30 | Procédé et appareil de dérivation de candidats de données de mouvement temporel dans un codage vidéo |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019061537A1 true WO2019061537A1 (fr) | 2019-04-04 |
Family
ID=65902784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2017/105133 WO2019061537A1 (fr) | 2017-09-30 | 2017-09-30 | Procédé et appareil de dérivation de candidats de données de mouvement temporel dans un codage vidéo |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2019061537A1 (fr) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014166329A1 (fr) * | 2013-04-10 | 2014-10-16 | Mediatek Inc. | Procédé et appareil de calcul de candidat entre vues pour un codage vidéo tridimensionnel |
US20150208083A1 (en) * | 2012-07-10 | 2015-07-23 | Lg Electronics Inc. | Method and device for processing video signal |
CN106231339A (zh) * | 2011-01-07 | 2016-12-14 | Lg电子株式会社 | 编码和解码图像信息的方法和使用该方法的装置 |
US20160366415A1 (en) * | 2015-06-09 | 2016-12-15 | Qualcomm Incorporated | Systems and methods of determining illumination compensation parameters for video coding |
CN107113446A (zh) * | 2014-12-09 | 2017-08-29 | 联发科技股份有限公司 | 视频编码中的运动矢量预测子或合并候选的推导方法 |
-
2017
- 2017-09-30 WO PCT/CN2017/105133 patent/WO2019061537A1/fr active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106231339A (zh) * | 2011-01-07 | 2016-12-14 | Lg电子株式会社 | 编码和解码图像信息的方法和使用该方法的装置 |
US20150208083A1 (en) * | 2012-07-10 | 2015-07-23 | Lg Electronics Inc. | Method and device for processing video signal |
WO2014166329A1 (fr) * | 2013-04-10 | 2014-10-16 | Mediatek Inc. | Procédé et appareil de calcul de candidat entre vues pour un codage vidéo tridimensionnel |
CN107113446A (zh) * | 2014-12-09 | 2017-08-29 | 联发科技股份有限公司 | 视频编码中的运动矢量预测子或合并候选的推导方法 |
US20160366415A1 (en) * | 2015-06-09 | 2016-12-15 | Qualcomm Incorporated | Systems and methods of determining illumination compensation parameters for video coding |
Non-Patent Citations (1)
Title |
---|
ZHANG, KAI: "On adaptive motion vector resolution", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP 3 AND LSOLLEC JTC 1/SC 29/WG 11, 18 February 2015 (2015-02-18) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11589040B2 (en) | Temporal motion data candidate derivation in video coding | |
US11606573B2 (en) | Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding | |
US12047584B1 (en) | Parsing friendly and error resilient merge flag coding | |
US11825078B2 (en) | Luma-based chroma intra-prediction for video coding | |
US20240275987A1 (en) | Unified intra block copy and inter prediction modes | |
US20190098304A1 (en) | Mode adaptive intra prediction smoothing in video coding | |
US20240340435A1 (en) | Inter-prediction candidate index coding | |
WO2019061537A1 (fr) | Procédé et appareil de dérivation de candidats de données de mouvement temporel dans un codage vidéo |
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: 17927231 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: 17927231 Country of ref document: EP Kind code of ref document: A1 |