WO2020063687A1 - Procédé de décodage vidéo et décodeur vidéo - Google Patents

Procédé de décodage vidéo et décodeur vidéo Download PDF

Info

Publication number
WO2020063687A1
WO2020063687A1 PCT/CN2019/107931 CN2019107931W WO2020063687A1 WO 2020063687 A1 WO2020063687 A1 WO 2020063687A1 CN 2019107931 W CN2019107931 W CN 2019107931W WO 2020063687 A1 WO2020063687 A1 WO 2020063687A1
Authority
WO
WIPO (PCT)
Prior art keywords
current
node
mer
coding block
block
Prior art date
Application number
PCT/CN2019/107931
Other languages
English (en)
Chinese (zh)
Inventor
杨海涛
徐巍炜
赵寅
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2020063687A1 publication Critical patent/WO2020063687A1/fr

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/96Tree coding, e.g. quad-tree coding

Definitions

  • the embodiments of the present application generally relate to the field of video coding, and more specifically, to a video decoding method and a video decoder.
  • Video encoding (video encoding and decoding) is widely used in digital video applications, such as broadcast digital TV, video transmission on the Internet and mobile networks, real-time conversation applications such as video chat and video conferencing, DVD and Blu-ray discs, video content acquisition and editing systems And security applications for camcorders.
  • Video Coding AVC
  • ITU-T H.265 High Efficiency Video Coding
  • 3D three-dimensional
  • HEVC High Efficiency Video Coding
  • the embodiments of the present application provide a video decoding method and a video decoder, which can improve decoding efficiency.
  • the invention relates to a video decoding method, which may be performed by a video decoder.
  • the method is a decoding method based on a Motion Estimation Region (MER). It includes: obtaining partition information of a current coding block; determining a current MER to which the current coding block belongs according to the partition information; determining a first coding block, where the first coding block is a spatial domain candidate corresponding to the current coding block A coding block; determining whether the current coding block and the first coding block belong to the same MER;
  • MER Motion Estimation Region
  • the current coding block and the first coding block belong to the same MER, based on the position relationship between the first coding block and the current coding block, and information of the current MER, it is determined that A second coding block adjacent to the MER space, wherein the information of the MER includes the coordinates of the MER; and a candidate list of spatial motion information is constructed based on the second coding block, and the second coding block is located outside the current MER ; Predicting and reconstructing the current coding block according to the spatial domain motion information candidate list.
  • the video decoding method provided by the present invention can re-select a coding block outside the MER to build a spatial motion information candidate list in the case that a selected coding block corresponding to the spatial domain candidate and the current coding block belong to the same MER, thereby It is ensured that the coding block used to construct the candidate list of spatial motion information is appropriate, thereby improving the efficiency of encoding and decoding.
  • airspace candidates are spatial candidates.
  • Spatial candidates can be considered as a set of coordinates.
  • the spatial domain candidate includes multiple coordinate points, and the coordinates of each coordinate point can indicate the position of a coding block.
  • the coordinate points in the spatial domain candidate of the current coding block indicate multiple spatial domain neighboring blocks of the current coding block.
  • the positional relationship between the multiple spatial domain neighboring blocks and the current coding block is shown in FIG. 8.
  • the multiple spatial domain neighboring blocks are A 0 , A 1 , B 0 , B 1 , B 2 .
  • the spatial domain candidate of the current coding block includes more coordinate points, that is, the coordinate points in the spatial domain candidate of the current coding block indicate multiple spatial domain neighboring blocks of the current coding block, and also include Other airspace blocks located near the current coded block.
  • (xN, yN) may be specifically the coordinates of the upper left corner of the first encoding block
  • (xP, yP) may be specifically the coordinates of the upper left corner of the current encoding block
  • (xMER, yMER) may be specifically the coordinates of the upper left corner of the current MER
  • the coordinates corresponding to the second coding block may be expressed as (xM, yM), and may specifically be the coordinates of the upper left corner of the second coding block.
  • the coordinates of the above several blocks should be the values in the same coordinate system.
  • This value can be an absolute value or a relative value relative to a point in the coordinate system, such as the origin of the coordinate system. Without restrictions. And, in the same implementation, the coordinates of the above several blocks should be taken from the same position of these blocks, for example, all the coordinates of the upper right corner of these blocks, or the coordinates of the lower right corner, or the coordinates of the center point, etc. Applications are not limited. Therefore, the positional relationship between the first coding block and the current coding block can be expressed by a mathematical relationship between xN and xP, and yN and yP.
  • the information of the current MER further includes a width and a height of the current MER, (xN, yN) indicates a coordinate of the first encoding block, (xP, yP) indicates the coordinates of the current encoding block, and determines a second encoding adjacent to the current MER space based on the positional relationship between the first encoding block and the current encoding block, and the current MER information
  • the block includes: if xN-xP is less than zero, determining a coordinate corresponding to the second coding block as (xMER-1, yMER + M), where (xMER, yMER) indicates a coordinate of the current MER, M is an integer, M is greater than or equal to 1, M is less than or equal to twice the height of the current MER; and in the case where xN-xP is greater than or equal to zero and yN-yP is less than zero, determining the coordinates corresponding to the second en
  • the information of the current MER further includes a width and a height of the current MER
  • (xN, yN) indicates a coordinate of the first encoding block
  • (xP, yP) indicates the coordinates of the current encoding block
  • the current MER information A block including: in a case where xN-xP is less than zero and yN-yP is greater than or equal to zero, determining a coordinate corresponding to the second encoding block as (xMER-1, yMER + M), where (xMER, yMER) indicates For the coordinates of the current MER, M is an integer, M is greater than or equal to 1, and M is less than or equal to twice the height of the MER; and when yN-yP is less than zero, the coordinates corresponding to the second en
  • the information of the current MER further includes a width and a height of the MER
  • the first coding block is a plurality of spatially adjacent blocks of the current coding block.
  • the determining a second coding block adjacent to the current MER airspace based on the positional relationship between the first coding block and the current coding block and the current MER information includes: When a coding block is adjacent to the lower left corner of the current coding block, the coordinates corresponding to the second coding block are (xMER-1, yMER + hMER); between the first coding block and the current coding block When the left edges of the blocks are adjacent, the coordinates corresponding to the second encoding block are (xMER-1, yMER + hMER-1); the upper right corner of the first encoding block and the current encoding block are in phase with each other.
  • the coordinate corresponding to the second encoding block is (xMER + wMER, yMER-1); in the case where the first encoding block is adjacent to the upper side of the current encoding block, the second The coordinates corresponding to the coding block are (xMER + wMER-1, yMER-1); between the first coding block and the current coding block When the upper left corner is adjacent, the coordinates corresponding to the second encoding block are (xMER-1, yMER-1); where (xMER, yMER) indicates the coordinates of the MER, hMER indicates the height of the MER, wMER indicates the width of the MER.
  • (xN, yN) indicates coordinates of the first encoding block
  • (xP, yP) indicates coordinates of the current encoding block
  • Indicating the coordinates of the current MER, and determining a second encoding block adjacent to the current MER space based on the positional relationship between the first encoding block and the current encoding block, and the information of the current MER include:
  • the coordinates corresponding to the second encoding block are (xMER-1, yN);
  • the coordinates corresponding to the second encoding block are (xN, yMER-1);
  • the coordinate range corresponding to the second coding block is: the x-axis is an integer greater than or equal to xMER-1 and less than xP, and the y-axis is greater than An integer equal to yMER-1 and less than yP.
  • the available second coding block can be determined.
  • the acquiring the partition information of the current coding block includes: acquiring a quad-tree (QT) partition depth N of the current coding block and the current coding block Multiple Type Tree (MTT) partition depth M, the current coding block is one of multiple coding blocks obtained after the coding tree unit is partitioned M + N times.
  • QT quad-tree
  • MTT Multiple Type Tree
  • determining the range of the sub-units divided by the four-difference tree as the MER can effectively ensure that the coding block in the MER does not exceed the MER, and the MER does not include the sub-units in other MERs. , Thereby effectively ensuring the diversity of candidate motion information available in the construction of the motion list.
  • the width and height of the K-level quadtree node are equal to (1 ⁇ K1).
  • the determining the current MER to which the current coding block belongs according to the partition information further includes: if the quad-tree partitioning If the depth N is less than or equal to the first threshold T1, or the multi-type partition depth M of the current coding unit is equal to 0, then the current coding block is the current MER.
  • the acquiring the partition information of the current coding block includes: acquiring a partition depth N of the current coding block, where the partition depth N is The sum of the QT partition depth Dq of the current coding block and the MTT partition depth Dm of the current block, the current coding block is one of a plurality of coding blocks obtained after the coding tree unit is divided N times, where The sub-unit obtained by each division of the coding tree unit is called a node, and the coding tree unit itself is the root node of the node. If the node does not continue to divide, it is called a leaf node.
  • the current coding block is One of a plurality of leaf nodes after the encoding unit is divided N times; and determining the current MER to which the current encoding block belongs according to the division information includes: if the division depth N of the current encoding block is greater than a first threshold T1, obtain the N-T1 layer parent node of the current coding block, and use the area covered by the N-T1 layer parent node as the current MER, where the parent node contains the current MER Code block and the node where the split node depth of less than N, the node of the current encoding block is located immediately adjacent to the parent node of the parent node of the current level of the first encoded block.
  • This embodiment provides another calculation method for determining the MER, that is, using the current node as a starting point, and finding the position of the MER's node in a reverse recursive manner.
  • the acquiring the partition information of the current coding block includes: acquiring a partition depth N of the current coding block, where the partition depth N is The sum of the QT partition depth Dq of the current coding block and the MTT partition depth Dm of the current block, the current coding block is one of a plurality of coding blocks obtained after the coding tree unit is divided N times, where The sub-unit obtained by each division of the coding tree unit is called a node, the coding tree unit itself is the root node of the node, the node that is no longer divided is a leaf node, and the current coding block is that the coding unit passes N One of a plurality of leaf nodes after the second division; determining the current MER to which the current encoding block belongs according to the division information includes: if the division depth N of the current encoding block is greater than a first threshold T1, An area covered by a node with a division depth
  • This implementation is a simplified implementation, that is, the complexity of the implementation can be evolved by directly determining the range of the MER through T1.
  • the constructing an airspace motion information candidate list based on a spatial-domain neighboring coding block of the current coding block includes: determining the spatial-domain neighboring block Whether the current coding block is located in the same MER, if yes, the airspace neighboring block is set as unavailable; if not, the airspace motion information candidate list is constructed based on the motion information of the airspace neighboring block .
  • the present invention relates to a video decoding method.
  • the decoding method may have a video decoder to perform a decoding method based on a Motion Estimation Region MER, which includes: obtaining division information of a coding tree unit; The partition information is used to divide the coding tree unit to obtain multiple nodes. Among the multiple nodes, a node that is continuously divided is a parent node, and a node that is not further divided is a leaf node.
  • the first node may be the parent node or a leaf node; determining a first encoding block, wherein the first encoding A block is a coding block corresponding to one spatial domain candidate of the current coding block, and the current coding block is the first node or a leaf node obtained by further dividing the first node; determining the current coding block and the first Whether the coding block belongs to the same MER; and in a case where the current coding block and the first coding block belong to the same MER, based on the first MER A position relationship between a code block and the current coding block, and information of the current MER, determine a second coding block that is close to the current MER airspace, wherein the information of the MER includes coordinates of the MER; The second coding block constructs a spatial motion information candidate list, and the second coding block is located outside the current MER; and the current coding block is
  • airspace candidates are spatial candidates. It includes multiple coordinate points, and the coordinates of each coordinate point can indicate the position of a coding block.
  • the coordinate points in the spatial domain candidate of the current coding block indicate multiple spatial domain neighboring blocks of the current coding block.
  • the positional relationship between the multiple spatial domain neighboring blocks and the current coding block is shown in FIG. 8.
  • the multiple spatial domain neighboring blocks are A 0 , A 1 , B 0 , B 1 , B 2 .
  • the spatial domain candidate of the current coding block includes more coordinate points, that is, the coordinate points in the spatial domain candidate of the current coding block indicate multiple spatial domain neighboring blocks of the current coding block, and also include Other airspace blocks located near the current coded block.
  • airspace candidates are spatial candidates.
  • Spatial candidates can be considered as a set of coordinates.
  • the spatial domain candidate includes multiple coordinate points, and the coordinates of each coordinate point can indicate the position of a coding block.
  • the coordinate points in the spatial domain candidate of the current coding block indicate multiple spatial domain neighboring blocks of the current coding block.
  • the positional relationship between the multiple spatial domain neighboring blocks and the current coding block is shown in FIG. 8.
  • the multiple spatial domain neighboring blocks are A 0 , A 1 , B 0 , B 1 , B 2 .
  • the spatial domain candidate of the current coding block includes more coordinate points, that is, the coordinate points in the spatial domain candidate of the current coding block indicate multiple spatial domain neighboring blocks of the current coding block, and also include Other airspace blocks located near the current coded block.
  • the second aspect provides another MER-based decoding method.
  • the difference lies in that the MER determination mechanism is different.
  • the MER determination method may precede the processing process of the current decoding unit, that is, the information of the MER on the coding tree unit. It is determined and recorded during the division process, and when constructing the spatial motion information candidate list of the current coding unit, the stored MER information can be directly called.
  • the method includes:
  • the division depth includes an independent quad-tree division depth (QUAD-Tree Depth, QT depth), and a multi-type division depth (Multi-Type Tree, MTT Depth) ),
  • the determining the first node whose division depth satisfies a preset condition, and using the area covered by the first node as the MER of the first node includes: determining that QT depth is equal to the preset condition and the MTT depth is The first node equal to 0 uses the area covered by the first node as the MER of the first node.
  • the division depth is a quad-tree division depth (QUAD-Tree Depth, QT depth) and a multi-type division depth (Multi-Type Tree, MTT Depth)
  • determining the first node whose division depth satisfies a preset condition and using the area covered by the first node as the MER of the first node includes: determining that the division depth is equal to the preset condition and is further divided into A first node of a plurality of MTT leaf nodes, using an area covered by the first node as a MER of the first node, wherein the current coding block is one of the plurality of MTT leaf nodes.
  • the partition depth N Dq * 2 + Db, where Dq is a quad-tree partition depth of the node, and Db is a multiple of the node Depth of type division. If the node is a MTT root node, the Db of the node is equal to 0. If the node is a leaf node of the MTT and the node is obtained by binary tree division, the Db of the node is the node. The Db of the root node is increased by 1. If the node is a leaf node of the MTT and the node is a middle node among the three nodes obtained by the tri-tree division method, the Db of the node is the root node of the node.
  • Determining that the first node whose division depth satisfies a preset condition, and using the area covered by the first node as the MER of the first node includes: determining that the division depth N is equal to the second threshold T2 minus 1, and the division method is The first node of the tri-tree partitioning method, The area covered by a node is used as the MER of the first node, or it is determined that the partition depth N is equal to the second threshold T2, and the first node is divided into a binary tree or a quad tree, and the first node is The covered area is taken as the MER of the first node, where T2 is a positive integer greater than 1.
  • the determining a first node whose division depth satisfies a preset condition, and using an area covered by the first node as a MER of the first node includes further The method includes determining that the division depth N is less than or equal to the second threshold T2 minus 1 and is the first node of the leaf node, and uses the area covered by the first node as the MER of the first node.
  • the partition depth N Dq * 2 + Db, where Dq is a quad-tree partition depth of the node, Db
  • Dq is a quad-tree partition depth of the node
  • Db For the multi-type partition depth of the node, if the node is a MTT root node, the Db of the node is equal to 0, if the node is a leaf node of the MTT, and the node is obtained by a binary tree partitioning method, the The Db of a node is the Db of the root node of the node plus 1.
  • the Db of the node Add 1 to the Db of the root node of the node. If the node is a leaf node of the MTT and the node is a non-intermediate node among the three nodes obtained by the tri-tree division method, the Db of the node is the node.
  • the Db of the root node is increased by 2; determining the first node whose division depth satisfies a preset condition, and using the area covered by the first node as the MER of the first node includes: determining that the division depth N is equal to the third threshold T3 minus 1, and the division method is a tri-tree division method Or the first node of the quad tree partition method, using the area covered by the first node as the MER of the first node, or determining that the partition depth N is equal to the third threshold T3, and the partition method is the first node of the binary tree partition method.
  • T3 is a positive integer greater than 1.
  • the MER of a node further includes: determining that the division depth N is less than or equal to the third threshold T3 and is the first node of the leaf node, and using the area covered by the first node as the MER of the first node.
  • the constructing an airspace motion information candidate list based on a spatial-domain neighboring coding block of the current coding block includes: determining the spatial-domain neighboring block Whether the current coding block is located in the same MER, if yes, the airspace neighboring block is set as unavailable; if not, the airspace motion information candidate list is constructed based on the motion information of the airspace neighboring block .
  • the present invention provides a decoding device including various modules corresponding to the method of the first aspect, and the various modules are provided with functions for implementing each step of the method.
  • the parsing module is configured to obtain a quad-tree (QT) partition depth N of the current coding block and a multiple type tree (MTT) partition depth of the current coding block.
  • QT quad-tree
  • M multiple type tree
  • the MER determination module is further configured to: when the quadtree partition depth N is less than or equal to the first threshold T1, or the multi-type partition depth M of the current coding unit is equal to 0, then The current coding block is the current MER.
  • the parsing module is configured to obtain a partition depth N of a current coding block, where the partition depth N is a sum of a QT partition depth Dq of the current coding block and a MTT partition depth Dm of the current block.
  • the current coding block is one of a plurality of coding blocks obtained after the coding tree unit is divided N times, wherein the sub-unit obtained by each division of the coding tree unit is called a node, and the coding tree unit itself is The root node of the node, if the node is no longer divided, it is called a leaf node, and the current coding block is one of a plurality of leaf nodes after the coding unit is divided N times; the MER determines The module is configured to: when the division depth N of the current coding block is greater than a first threshold T1, obtain the N-T1 layer parent node of the current coding block, and use the N-T1 layer parent node to cover The region is the current MER, wherein the parent node is a node containing the node where the current coding block is located and the division depth is less than N, and the parent node immediately adjacent to the node where the current coding block is located is the current coding block. Tier 1 parent Point.
  • the parsing module is configured to obtain a partition depth N of a current coding block, where the partition depth N is a sum of a QT partition depth Dq of the current coding block and a MTT partition depth Dm of the current block.
  • the current coding block is one of a plurality of coding blocks obtained after the coding tree unit is divided N times, wherein the sub-unit obtained by each division of the coding tree unit is called a node, and the coding tree unit itself is The root node of the node, the node that is no longer divided is a leaf node, and the current coding block is one of a plurality of leaf nodes after the coding unit is divided N times;
  • the MER determination module is configured to: When the partition depth N of the current coding block is greater than the first threshold T1, the area covered by the node with the partition depth T1 in the coding tree unit is used as the current MER, where T1 is a preset non-zero positive integer .
  • the airspace motion information candidate list construction module is configured to construct the airspace motion information candidate list based on the motion information of the second encoding block. Airspace motion information candidate list.
  • the present invention provides a decoding device including various modules corresponding to the method of the second aspect, and the various modules are provided with functions for implementing each step of the method.
  • the division depth includes independent quad-tree division depth (QUAD-Tree Depth, QT depth), and multi-type division depth (Multi-Type Tree, MTT Depth), and the MER determination module is used for It is determined that the first node whose QT depth is equal to the preset condition and the MTT depth is equal to 0, and the area covered by the first node is used as the MER of the first node.
  • QUAD-Tree Depth, QT depth independent quad-tree Division depth
  • MTT Depth Multi-Type Tree, MTT Depth
  • the division depth is a sum of a quad-tree division depth (QUAD-Tree Depth, QT depth) and a multi-type division depth (Multi-Type Tree, MTT Depth), and the MER determination module is configured to determine A first node whose division depth is equal to the preset condition and is further divided into a plurality of MTT leaf nodes, and an area covered by the first node is used as a MER of the first node, wherein the current coding block is the multi-node One of the MTT leaf nodes.
  • QUAD-Tree Depth, QT depth quad-tree Depth
  • MTT Depth multi-type division depth
  • the division depth N Dq * 2 + Db, where Dq is a quad-tree division depth of the node, Db is a multi-type division depth of the node, and if the node is an MTT root Node, the Db of the node is equal to 0, if the node is a leaf node of MTT, and the node is obtained by the binary tree division, the Db of the node is the Db of the root node of the node plus 1, if the node Is a leaf node of the MTT, and the node is a middle node among the three nodes obtained by the tri-tree division, the Db of the node is the Db of the root node of the node plus 1, if the node is an MTT
  • the leaf node is a non-intermediate node among the three nodes obtained by the tri-tree division method
  • the MER determination module is further configured to determine a first node that is a leaf node that is less than or equal to a second threshold T2 minus 1 and uses the area covered by the first node as the first node.
  • the MER of a node is further configured to determine a first node that is a leaf node that is less than or equal to a second threshold T2 minus 1 and uses the area covered by the first node as the first node. The MER of a node.
  • the division depth N Dq * 2 + Db, where Dq is a quad-tree division depth of the node, Db is a multi-type division depth of the node, and if the node is an MTT root Node, the Db of the node is equal to 0, if the node is a leaf node of MTT, and the node is obtained by the binary tree division, the Db of the node is the Db of the root node of the node plus 1, if the node Is a leaf node of the MTT, and the node is a middle node among the three nodes obtained by the tri-tree division, the Db of the node is the Db of the root node of the node plus 1, if the node is an MTT
  • the leaf node is a non-intermediate node among the three nodes obtained by the tri-tree division method
  • the MER determination module is configured to determine that the division depth N is less than or equal to a third threshold T3 and is the first node of the leaf node, and uses the area covered by the first node as the first node's MER.
  • the airspace motion information candidate list construction module is configured to The motion information of the second coding block constructs the spatial domain motion information candidate list.
  • the present invention relates to a device for decoding a video stream, including a processor and a memory.
  • the memory stores instructions that cause the processor to execute the method according to the first aspect or the second aspect.
  • the present invention provides a computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors to encode video data.
  • the instructions cause the one or more processors to perform a method according to the first or second aspect or any possible embodiment of the first or second aspect.
  • the invention relates to a computer program comprising program code which, when run on a computer, performs a method according to the first or second aspect or any possible embodiment of the first or second aspect.
  • the present invention provides a decoding method based on a motion estimation assessment region (MER), which includes: obtaining division information of a current encoding block; and determining the current MER to which the current encoding block belongs according to the division information. ;
  • MER motion estimation assessment region
  • all coding blocks in the MER range use the same spatial motion information candidate list.
  • FIG. 1 is a block diagram of an example of a video encoding system for implementing an embodiment of the present invention
  • FIG. 2 is a block diagram showing an example structure of a video encoder for implementing an embodiment of the present invention
  • FIG. 3 is a block diagram showing an example structure of a video decoder for implementing an embodiment of the present invention
  • FIG. 4 is a diagram showing the encoder 20 of FIG. 2 and the decoder 30 of FIG. 3.
  • FIG. 5 is a block diagram illustrating another example of an encoding device or a decoding device
  • FIG. 6 is a schematic diagram of a division manner of a binary tree, a triple tree, and a quad tree
  • FIG. 7 is a schematic diagram of QT-MTT division
  • FIG. 8 is a schematic diagram of an adjacent block in the space domain and an adjacent block in the time domain
  • FIG. 9 is a schematic diagram of determining available candidates based on MER
  • FIG. 10 is a schematic diagram of MER division
  • FIG. 11 is a schematic diagram of a first MER and a coding block in a QT-MTT partitioning mode
  • FIG. 12 is a schematic diagram of a coding method according to an embodiment of the present invention.
  • FIG. 13 is a schematic diagram of another encoding method according to an embodiment of the present invention.
  • FIG. 14 is a schematic diagram of an encoding device according to an embodiment of the present invention.
  • FIG. 15 is a schematic diagram of another encoding apparatus according to an embodiment of the present invention.
  • the disclosure in connection with the described method may be equally applicable to a corresponding device or system for performing the method, and vice versa.
  • the corresponding device may include one or more units such as functional units to perform the described one or more method steps (e.g., one unit performs one or more steps Or multiple units, each of which performs one or more of the multiple steps), even if such one or more units are not explicitly described or illustrated in the drawings.
  • the corresponding method may include a step to perform the functionality of one or more units (e.g., a step performs one or more units Functionality, or multiple steps, where each performs the functionality of one or more of the multiple units), even if such one or more steps are not explicitly described or illustrated in the drawings.
  • a step performs one or more units Functionality, or multiple steps, where each performs the functionality of one or more of the multiple units
  • the features of the various exemplary embodiments and / or aspects described herein may be combined with each other, unless explicitly stated otherwise.
  • Video coding generally refers to processing a sequence of pictures that form a video or a video sequence.
  • picture In the field of video coding, the terms “picture”, “frame” or “image” can be used as synonyms.
  • Video encoding used in this application means video encoding or video decoding.
  • Video encoding is performed on the source side and typically involves processing (e.g., by compressing) the original video picture to reduce the amount of data required to represent the video picture (thus storing and / or transmitting more efficiently).
  • Video decoding is performed on the destination side and usually involves inverse processing relative to the encoder to reconstruct the video picture.
  • the video pictures (or collectively referred to as pictures, which will be explained below) referred to in the embodiments should be understood as “encoding” or “decoding” related to a video sequence.
  • the combination of the encoding part and the decoding part is also called codec (encoding and decoding).
  • the original video picture can be reconstructed, that is, the reconstructed video picture has the same quality as the original video picture (assuming there is no transmission loss or other data loss during storage or transmission).
  • further compression is performed by, for example, quantization to reduce the amount of data required to represent the video picture, and the decoder side cannot completely reconstruct the video picture, that is, the quality of the reconstructed video picture is compared to the original video picture The quality is lower or worse.
  • Each picture of a video sequence is usually partitioned into a set of non-overlapping blocks, usually encoded at the block level.
  • the encoder side usually processes at the block (video block) level, that is, encodes the video.
  • the prediction block is generated by spatial (intra-picture) prediction and temporal (inter-picture) prediction.
  • the encoder duplicates the decoder processing loop so that the encoder and decoder generate the same predictions (such as intra prediction and inter prediction) and / or reconstruction for processing, that is, encoding subsequent blocks.
  • the term "block” may be part of a picture or frame.
  • VVC Multi-purpose Video Coding
  • VCEG Video Coding Experts Group
  • MPEG ISO / IEC Motion Picture Experts Group
  • HEVC High-Efficiency Video Coding
  • JCT-VC Joint Collaboration, Video Coding
  • Each CU can be further split into one, two or four PUs according to the PU split type. The same prediction process is applied within a PU, and related information is transmitted to the decoder on the basis of the PU.
  • a CU may be partitioned into a transform unit (TU) according to other quad-tree structures similar to a coding tree for a CU.
  • TU transform unit
  • quad-tree and binary-tree (QTBT) split frames are used to split coded blocks.
  • the CU may be a square or rectangular shape.
  • a coding tree unit (CTU) is first divided by a quad tree structure.
  • the quad leaf nodes are further partitioned by a binary tree structure.
  • Binary leaf nodes are called coding units (CUs), and the segments are used for prediction and transformation processing without any other segmentation.
  • CUs coding units
  • the segments are used for prediction and transformation processing without any other segmentation.
  • CUs coding units
  • the segments are used for prediction and transformation processing without any other segmentation.
  • the CU, PU, and TU have the same block size in the QTBT coded block structure.
  • Embodiments of the encoder 20, the decoder 30, and the encoding and decoding systems 10, 40 are described below based on Figs. 1 to 4 (before the embodiments of the present invention are described in more detail based on Figs. 12 and 13).
  • FIG. 1 is a conceptual or schematic block diagram illustrating an exemplary encoding system 10.
  • a video encoding system 10 that can use the technology of the present application (the present disclosure).
  • the encoder 20 (e.g., video encoder 20) and decoder 30 (e.g., video decoder 30) of the video encoding system 10 represent that they can be used to perform motion estimation based evaluation regions (MotionEst) based on various examples described in this application.
  • MotionEst motion estimation based evaluation regions
  • the encoding system 10 includes a source device 12 for providing the encoded data 13, such as the encoded picture 13, to a destination device 14 that decodes the encoded data 13, for example.
  • the source device 12 includes an encoder 20, and in addition, optionally, may include a picture source 16, such as a pre-processing unit 18 of a picture pre-processing unit 18, and a communication interface or communication unit 22.
  • a picture source 16 such as a pre-processing unit 18 of a picture pre-processing unit 18, and a communication interface or communication unit 22.
  • the picture source 16 may include or may be any kind of picture capture device for, for example, capturing real-world pictures, and / or any kind of pictures or comments (for screen content encoding, some text on the screen is also considered to be a picture to be encoded Or a part of an image) generating device, for example, a computer graphics processor for generating computer animated pictures, or for obtaining and / or providing real world pictures, computer animated pictures (for example, screen content, virtual reality (VR) ) Pictures) of any type of device, and / or any combination thereof (eg, augmented reality (AR) pictures).
  • a computer graphics processor for generating computer animated pictures, or for obtaining and / or providing real world pictures, computer animated pictures (for example, screen content, virtual reality (VR) ) Pictures) of any type of device, and / or any combination thereof (eg, augmented reality (AR) pictures).
  • AR augmented reality
  • a (digital) picture is or can be regarded as a two-dimensional array or matrix of sampling points with luminance values.
  • the sampling points in the array may also be called pixels (short for picture element) or pixels.
  • the number of sampling points of the array or picture in the horizontal and vertical directions (or axes) defines the size and / or resolution of the picture.
  • three color components are usually used, that is, a picture can be represented as or contain three sampling arrays.
  • pictures include corresponding red, green, and blue sampling arrays.
  • each pixel is usually represented in a luma / chroma format or color space, for example, YCbCr, including the luma component indicated by Y (sometimes also indicated by L) and the two chroma indicated by Cb and Cr Weight.
  • Luma (abbreviated as luma) component Y represents luminance or gray level intensity (for example, both are the same in a grayscale picture), while two chroma (abbreviated as chroma) components Cb and Cr represent chroma or color information components .
  • a picture in the YCbCr format includes a luminance sampling array of luminance sampling values (Y), and two chrominance sampling arrays of chrominance values (Cb and Cr).
  • Y luminance sampling values
  • Cb and Cr chrominance sampling arrays of chrominance values
  • Pictures in RGB format can be converted or converted to YCbCr format, and vice versa. This process is also called color conversion or conversion. If the picture is black and white, the picture can include only an array of luminance samples.
  • the picture source 16 may be, for example, a camera for capturing pictures, such as a memory of a picture memory, including or storing a previously captured or generated picture, and / or any category (internal Or external) interface.
  • the camera may be, for example, an integrated camera that is local or integrated in the source device, and the memory may be local or, for example, an integrated memory that is integrated in the source device.
  • the interface may be, for example, an external interface for receiving pictures from an external video source.
  • the external video source is, for example, an external picture capture device, such as a camera, an external memory, or an external picture generation device.
  • the external picture generation device is, for example, an external computer graphics processor, a computer. Or server.
  • the interface may be any type of interface according to any proprietary or standardized interface protocol, such as a wired or wireless interface, an optical interface.
  • the interface for acquiring the picture data 17 may be the same interface as the communication interface 22 or a part of the communication interface 22.
  • a picture or picture data 17 (for example, video data 16) may also be referred to as an original picture or original picture data 17.
  • the pre-processing unit 18 is configured to receive (original) picture data 17 and perform pre-processing on the picture data 17 to obtain pre-processed pictures 19 or pre-processed picture data 19.
  • the pre-processing performed by the pre-processing unit 18 may include trimming, color format conversion (for example, conversion from RGB to YCbCr), color correction, or denoising. It is understood that the pre-processing unit 18 may be an optional component.
  • An encoder 20 (eg, video encoder 20) is used to receive the pre-processed picture data 19 and provide the encoded picture data 21 (details will be further described below, for example, based on FIG. 2 or FIG. 4). In one example, the encoder 20 may be used for ...
  • the communication interface 22 of the source device 12 can be used to receive the encoded picture data 21 and transmit it to other devices, such as the destination device 14 or any other device, for storage or direct reconstruction, or for correspondingly storing the
  • the encoded data 13 and / or the encoded picture data 21 are processed before transmitting the encoded data 13 to other devices, such as the destination device 14 or any other device for decoding or storage.
  • the destination device 14 includes a decoder 30 (for example, a video decoder 30), and in addition, optionally, it may include a communication interface or communication unit 28, a post-processing unit 32, and a display device 34.
  • a decoder 30 for example, a video decoder 30
  • the communication interface 28 of the destination device 14 is used, for example, to receive the encoded picture data 21 or the encoded data 13 directly from the source device 12 or any other source.
  • Any other source is, for example, a storage device, and the storage device is, for example, encoded picture data storage. device.
  • the communication interface 22 and the communication interface 28 can be used for direct communication through a direct communication link between the source device 12 and the destination device 14 or transmission or reception of encoded picture data 21 or encoded data 13 through any type of network
  • the link is, for example, a direct wired or wireless connection, and any type of network is, for example, a wired or wireless network or any combination thereof, or any type of private and public network, or any combination thereof.
  • the communication interface 22 may be used, for example, to encapsulate the encoded picture data 21 into a suitable format, such as a packet, for transmission over a communication link or communication network.
  • the communication interface 28 forming a corresponding part of the communication interface 22 may be used, for example, to decapsulate the encoded data 13 to obtain the encoded picture data 21.
  • Both the communication interface 22 and the communication interface 28 may be configured as unidirectional communication interfaces, as indicated by the arrows for the encoded picture data 13 from the source device 12 to the destination device 14 in FIG. 1, or configured as bidirectional communication interfaces, and It can be used, for example, to send and receive messages to establish a connection, acknowledge, and exchange any other information related to a communication link and / or data transmission such as encoded picture data transmission.
  • the decoder 30 is configured to receive the encoded picture data 21 and provide the decoded picture data 31 or the decoded picture 31 (details will be further described below, for example, based on FIG. 3 or FIG. 5).
  • the post-processor 32 of the destination device 14 is used to post-process decoded picture data 31 (also referred to as reconstructed picture data), for example, decoded picture 131 to obtain post-processed picture data 33, for example, post-processed Picture 33.
  • the post-processing performed by the post-processing unit 32 may include, for example, color format conversion (e.g., conversion from YCbCr to RGB), color correction, retouching, or resampling, or any other processing, such as preparing the decoded picture data 31 to be processed by
  • the display device 34 displays it.
  • the display device 34 of the destination device 14 is used to receive the post-processed picture data 33 to display a picture to, for example, a user or a viewer.
  • the display device 34 may be or may include any kind of display for presenting a reconstructed picture, such as an integrated or external display or monitor.
  • the display may include a liquid crystal display (LCD), an organic light emitting diode (OLED) display, a plasma display, a projector, a micro LED display, a liquid crystal on silicon (LCoS), Digital light processor (DLP) or any other display of any kind.
  • FIG. 1 illustrates the source device 12 and the destination device 14 as separate devices
  • the device embodiment may also include the source device 12 and the destination device 14 or both, ie, the source device 12 or corresponding And the functionality of the destination device 14 or equivalent.
  • the same hardware and / or software, or separate hardware and / or software, or any combination thereof may be used to implement the source device 12 or corresponding functionality and the destination device 14 or corresponding functionality .
  • Both the encoder 20 e.g., video encoder 20
  • decoder 30 e.g., video decoder 30
  • DSP digital signal processors
  • ASIC application-specific integrated circuit
  • FPGA field-programmable gate array
  • the device may store the software's instructions in a suitable non-transitory computer-readable storage medium, and may use one or more processors to execute the instructions in hardware to perform the techniques of the present disclosure.
  • processors any one of the foregoing (including hardware, software, a combination of hardware and software, etc.) can be considered as one or more processors.
  • Each of the video encoder 20 and the video decoder 30 may be included in one or more encoders or decoders, and any of the encoders or decoders may be integrated as a combined encoder / decoder in a corresponding device (Codec).
  • the source device 12 may be referred to as a video encoding device or a video encoding device.
  • the destination device 14 may be referred to as a video decoding device or a video decoding device.
  • the source device 12 and the destination device 14 may be examples of a video encoding device or a video encoding apparatus.
  • Source device 12 and destination device 14 may include any of a variety of devices, including any type of handheld or stationary device, such as a notebook or laptop computer, mobile phone, smartphone, tablet or tablet computer, video camera, desktop Computer, set-top box, TV, display device, digital media player, video game console, video streaming device (such as content service server or content distribution server), broadcast receiver device, broadcast transmitter device, etc., and may not be used Or use any kind of operating system.
  • a notebook or laptop computer mobile phone, smartphone, tablet or tablet computer, video camera, desktop Computer, set-top box, TV, display device, digital media player, video game console, video streaming device (such as content service server or content distribution server), broadcast receiver device, broadcast transmitter device, etc., and may not be used Or use any kind of operating system.
  • source device 12 and destination device 14 may be equipped for wireless communication. Therefore, the source device 12 and the destination device 14 may be wireless communication devices.
  • the video encoding system 10 shown in FIG. 1 is merely an example, and the techniques of the present application may be applicable to a video encoding setting (eg, video encoding or video decoding) that does not necessarily include any data communication between encoding and decoding devices. .
  • data may be retrieved from local storage, streamed over a network, and the like.
  • the video encoding device may encode the data and store the data to a memory, and / or the video decoding device may retrieve the data from the memory and decode the data.
  • encoding and decoding are performed by devices that do not communicate with each other, but only encode data to and / or retrieve data from memory and decode data.
  • video decoder 30 may be used to perform the reverse process.
  • video decoder 30 may be used to receive and parse such syntax elements, and decode related video data accordingly.
  • video encoder 20 may entropy encode one or more syntax elements that define ... into an encoded video bitstream.
  • video decoder 30 may parse such syntax elements and decode related video data accordingly.
  • FIG. 2 shows a schematic / conceptual block diagram of an example of a video encoder 20 for implementing the technology of the present (disclosed) application.
  • the video encoder 20 includes a residual calculation unit 204, a transformation processing unit 206, a quantization unit 208, an inverse quantization unit 210, an inverse transformation processing unit 212, a reconstruction unit 214, a buffer 216, and a loop filter.
  • the prediction processing unit 260 may include an inter prediction unit 244, an intra prediction unit 254, and a mode selection unit 262.
  • the inter prediction unit 244 may include a motion estimation unit and a motion compensation unit (not shown).
  • the video encoder 20 shown in FIG. 2 may also be referred to as a hybrid video encoder or a video encoder according to a hybrid video codec.
  • the residual calculation unit 204, the transformation processing unit 206, the quantization unit 208, the prediction processing unit 260, and the entropy coding unit 270 form the forward signal path of the encoder 20, while the The constructing unit 214, the buffer 216, the loop filter 220, the decoded picture buffer (DPB) 230, and the prediction processing unit 260 form a backward signal path of the encoder, wherein the backward signal path of the encoder corresponds to To the decoder's signal path (see decoder 30 in Figure 3).
  • the encoder 20 receives a picture 201 or a block 203 of the picture 201 through, for example, an input 202, for example, a picture in a picture sequence forming a video or a video sequence.
  • the picture block 203 can also be called the current picture block or the picture block to be encoded
  • the picture 201 can be called the current picture or the picture to be encoded (especially when the current picture is distinguished from other pictures in video encoding, other pictures such as the same video sequence (Ie previously encoded and / or decoded pictures in the video sequence of the current picture).
  • An embodiment of the encoder 20 may include a segmentation unit (not shown in FIG. 2) for segmenting the picture 201 into multiple blocks, such as the block 203, and generally into multiple non-overlapping blocks.
  • the segmentation unit can be used to use the same block size and corresponding raster to define the block size for all pictures in the video sequence, or to change the block size between pictures or subsets or groups of pictures, and split each picture into Corresponding block.
  • the prediction processing unit 260 of the video encoder 20 may be used to perform any combination of the aforementioned segmentation techniques.
  • block 203 is also or can be regarded as a two-dimensional array or matrix of sampling points with brightness values (sampling values), although its size is smaller than picture 201.
  • the block 203 may include, for example, one sampling array (e.g., a luminance array in the case of a black and white picture 201) or three sampling arrays (e.g., one luminance array and two chroma arrays in the case of a color picture) or a basis An array of any other number and / or category of color formats applied.
  • the number of sampling points in the horizontal and vertical directions (or axes) of the block 203 defines the size of the block 203.
  • the encoder 20 shown in FIG. 2 is used to encode a picture 201 block by block, for example, performing encoding and prediction on each block 203.
  • the residual calculation unit 204 is configured to calculate the residual block 205 based on the picture block 203 and the prediction block 265 (the other details of the prediction block 265 are provided below). Sample values of block 265 to obtain residual block 205 in the sample domain.
  • the transform processing unit 206 is configured to apply a transform such as discrete cosine transform (DCT) or discrete sine transform (DST) on the sample values of the residual block 205 to obtain transform coefficients 207 in the transform domain.
  • a transform such as discrete cosine transform (DCT) or discrete sine transform (DST)
  • DCT discrete cosine transform
  • DST discrete sine transform
  • the transform coefficient 207 may also be referred to as a transform residual coefficient, and represents a residual block 205 in a transform domain.
  • the transform processing unit 206 may be used to apply an integer approximation of DCT / DST, such as the transform specified for HEVC / H.265. Compared to an orthogonal DCT transform, this integer approximation is usually scaled by a factor. To maintain the norm of the residual blocks processed by the forward and inverse transforms, an additional scaling factor is applied as part of the transform process.
  • the scaling factor is usually selected based on certain constraints, for example, the scaling factor is a power of two used for shift operations, the bit depth of the transform coefficients, the trade-off between accuracy, and implementation cost.
  • a specific scaling factor is specified on the decoder 30 side by, for example, the inverse transform processing unit 212 (and on the encoder 20 side by, for example, the inverse transform processing unit 212 as the corresponding inverse transform), and accordingly, the The 20 side specifies a corresponding scaling factor for the positive transformation through the transformation processing unit 206.
  • the quantization unit 208 is used to quantize the transform coefficients 207, for example, by applying scalar quantization or vector quantization to obtain the quantized transform coefficients 209.
  • the quantized transform coefficient 209 may also be referred to as a quantized residual coefficient 209.
  • the quantization process can reduce the bit depth associated with some or all of the transform coefficients 207. For example, n-bit transform coefficients may be rounded down to m-bit transform coefficients during quantization, where n is greater than m.
  • the degree of quantization can be modified by adjusting the quantization parameter (QP). For scalar quantization, for example, different scales can be applied to achieve finer or coarser quantization.
  • a smaller quantization step size corresponds to a finer quantization, while a larger quantization step size corresponds to a coarser quantization.
  • An appropriate quantization step size can be indicated by a quantization parameter (QP).
  • the quantization parameter may be an index of a predefined set of suitable quantization steps.
  • smaller quantization parameters may correspond to fine quantization (smaller quantization step size)
  • larger quantization parameters may correspond to coarse quantization (larger quantization step size)
  • Quantization may include division by a quantization step size and corresponding quantization or inverse quantization performed, for example, by inverse quantization 210, or may include multiplication by a quantization step size.
  • Embodiments according to some standards such as HEVC may use quantization parameters to determine the quantization step size.
  • the quantization step size can be calculated using a fixed-point approximation using an equation containing division based on the quantization parameter. Additional scaling factors may be introduced for quantization and inverse quantization to restore the norm of the residual block that may be modified due to the scale used in the fixed-point approximation of the equation for the quantization step size and quantization parameter.
  • inverse transform and inverse quantization scales can be combined.
  • a custom quantization table can be used and signaled from the encoder to the decoder in, for example, a bitstream. Quantization is a lossy operation, where the larger the quantization step, the greater the loss.
  • the inverse quantization unit 210 is configured to apply the inverse quantization of the quantization unit 208 on the quantized coefficients to obtain the inverse quantized coefficients 211. For example, based on or using the same quantization step as the quantization unit 208, the quantization scheme applied by the quantization unit 208 is applied. Inverse quantization scheme.
  • the inverse quantized coefficient 211 may also be referred to as the inverse quantized residual coefficient 211, which corresponds to the transform coefficient 207, although the loss due to quantization is usually different from the transform coefficient.
  • the inverse transform processing unit 212 is used to apply an inverse transform of the transform applied by the transform processing unit 206, for example, an inverse discrete cosine transform (DCT) or an inverse discrete sine transform (DST), in the sample domain.
  • DCT inverse discrete cosine transform
  • DST inverse discrete sine transform
  • the inverse transform block 213 may also be referred to as an inverse transform inverse quantized block 213 or an inverse transform residual block 213.
  • the reconstruction unit 214 (for example, the summer 214) is used to add the inverse transform block 213 (that is, the reconstructed residual block 213) to the prediction block 265 to obtain the reconstructed block 215 in the sample domain.
  • the sample values of the reconstructed residual block 213 are added to the sample values of the prediction block 265.
  • a buffer unit 216 (or simply "buffer" 216), such as a line buffer 216, is used to buffer or store the reconstructed block 215 and corresponding sample values, for example, for intra prediction.
  • the encoder may be used to use any unfiltered reconstructed block and / or corresponding sample values stored in the buffer unit 216 for any category of estimation and / or prediction, such as intra-frame prediction.
  • an embodiment of the encoder 20 may be configured such that the buffer unit 216 is used not only for storing the reconstructed block 215 for intra prediction 254, but also for the loop filter unit 220 (not shown in FIG. 2). Out), and / or, for example, to make the buffer unit 216 and the decoded picture buffer unit 230 form a buffer.
  • Other embodiments may be used to use the filtered block 221 and / or blocks or samples from the decoded picture buffer 230 (neither shown in FIG. 2) as the input or basis for the intra prediction 254.
  • the loop filter unit 220 (or simply "loop filter” 220) is configured to filter the reconstructed block 215 to obtain the filtered block 221, so as to smoothly perform pixel conversion or improve video quality.
  • the loop filter unit 220 is intended to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or other filters, such as a bilateral filter, Adaptive loop filters (adaptive loop filters, ALF), or sharpening or smoothing filters, or cooperative filters.
  • the loop filter unit 220 is shown as an in-loop filter in FIG. 2, in other configurations, the loop filter unit 220 may be implemented as a post-loop filter.
  • the filtered block 221 may also be referred to as a filtered reconstructed block 221.
  • the decoded picture buffer 230 may store the reconstructed encoded block after the loop filter unit 220 performs a filtering operation on the reconstructed encoded block.
  • An embodiment of the encoder 20 may be used to output loop filter parameters (e.g., sample adaptive offset information), for example, directly output or by the entropy coding unit 270 or any other
  • the entropy coding unit outputs after entropy coding, for example, so that the decoder 30 can receive and apply the same loop filter parameters for decoding.
  • the decoded picture buffer (DPB) 230 may be a reference picture memory that stores reference picture data for the video encoder 20 to encode video data.
  • DPB 230 can be formed by any of a variety of memory devices, such as dynamic random access (DRAM) (including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), and resistive RAM (resistive RAM, RRAM)) or other types of memory devices.
  • DRAM dynamic random access
  • SDRAM synchronous DRAM
  • MRAM magnetoresistive RAM
  • RRAM resistive RAM
  • the DPB 230 and the buffer 216 may be provided by the same memory device or separate memory devices.
  • a decoded picture buffer (DPB) 230 is used to store the filtered block 221.
  • the decoded picture buffer 230 may be further used to store other previous filtered blocks of the same current picture or different pictures such as previously reconstructed pictures, such as the previously reconstructed and filtered block 221, and may provide a complete previous Reconstruction is the decoded picture (and corresponding reference blocks and samples) and / or part of the reconstructed current picture (and corresponding reference blocks and samples), for example for inter prediction.
  • a decoded picture buffer (DPB) 230 is used to store the reconstructed block 215.
  • Prediction processing unit 260 also referred to as block prediction processing unit 260, is used to receive or obtain block 203 (current block 203 of current picture 201) and reconstructed picture data, such as a reference to the same (current) picture from buffer 216 Samples and / or reference picture data 231 from one or more previously decoded pictures from the decoded picture buffer 230, and used to process such data for prediction, i.e., may be provided as inter-predicted blocks 245 or intra- Prediction block 265 of prediction block 255.
  • the mode selection unit 262 may be used to select a prediction mode (such as an intra or inter prediction mode) and / or a corresponding prediction block 245 or 255 used as the prediction block 265 to calculate the residual block 205 and reconstruct the reconstructed block 215.
  • a prediction mode such as an intra or inter prediction mode
  • a corresponding prediction block 245 or 255 used as the prediction block 265 to calculate the residual block 205 and reconstruct the reconstructed block 215.
  • An embodiment of the mode selection unit 262 may be used to select a prediction mode (e.g., selected from those prediction modes supported by the prediction processing unit 260) that provides the best match or minimum residual (minimum residual means Better compression in transmission or storage), or provide minimal signaling overhead (minimum signaling overhead means better compression in transmission or storage), or consider or balance both.
  • the mode selection unit 262 may be used to determine a prediction mode based on rate distortion optimization (RDO), that is, to select a prediction mode that provides the minimum code rate distortion optimization, or to select a prediction mode whose related code rate distortion meets the prediction mode selection criteria .
  • RDO rate distortion optimization
  • the encoder 20 is used to determine or select the best or optimal prediction mode from a set of (predetermined) prediction modes.
  • the prediction mode set may include, for example, an intra prediction mode and / or an inter prediction mode.
  • the set of intra prediction modes may include 35 different intra prediction modes, for example, non-directional modes such as DC (or average) mode and planar mode, or directional modes as defined in H.265, or may include 67 Different intra prediction modes, such as non-directional modes such as DC (or mean) mode and planar mode, or directional modes as defined in the developing H.266.
  • the set of (possible) inter-prediction modes depends on the available reference pictures (i.e., at least part of the decoded pictures previously stored in DBP 230) and other inter-prediction parameters, such as whether to use the entire reference picture or only the reference A part of the picture, such as a search window area surrounding the area of the current block, searches for the best matching reference block, and / or depends on, for example, whether pixel interpolation such as half-pixel and / or quarter-pixel interpolation is applied.
  • a skip mode and / or a direct mode can also be applied.
  • the prediction processing unit 260 may be further configured to divide the block 203 into smaller block partitions or sub-blocks, for example, using a quad-tree (QT) partition, a binary-tree (BT) partition, or a triple fork by iteration. Tree-triple-ternary-tree (TT) segmentation, or any combination thereof, and for performing predictions, for example, for each of block partitions or sub-blocks, where mode selection includes the tree structure and selection of the partitioned block 203 A prediction mode applied to each of a block partition or a sub-block.
  • QT quad-tree
  • BT binary-tree
  • TT Tree-triple-ternary-tree
  • the inter prediction unit 244 may include a motion estimation (ME) unit (not shown in FIG. 2) and a motion compensation (MC) unit (not shown in FIG. 2).
  • the motion estimation unit is configured to receive or obtain picture block 203 (current picture block 203 of current picture 201) and decoded picture 231, or at least one or more previously reconstructed blocks, for example, one or more other / different previous
  • the reconstructed block of picture 231 is decoded for motion estimation.
  • the video sequence may include the current picture and the previously decoded picture 31, or in other words, the current picture and the previously decoded picture 31 may be part of the picture sequence forming the video sequence or form the picture sequence.
  • the encoder 20 may be used to select a reference block from multiple reference blocks of the same or different pictures in multiple other pictures, and provide a reference picture (or reference picture index) to a motion estimation unit (not shown in FIG. 2). ) And / or provide an offset (spatial offset) between the position (X, Y coordinates) of the reference block and the position of the current block as an inter prediction parameter.
  • This offset is also called a motion vector (MV).
  • the motion compensation unit is used for obtaining, for example, receiving inter prediction parameters, and performing inter prediction based on or using the inter prediction parameters to obtain the inter prediction block 245.
  • Motion compensation performed by a motion compensation unit may include taking out or generating a prediction block based on a motion / block vector determined through motion estimation (possibly performing interpolation on sub-pixel accuracy). Interpolation filtering can generate additional pixel samples from known pixel samples, potentially increasing the number of candidate prediction blocks that can be used to encode picture blocks.
  • the motion compensation unit 246 may locate the prediction block pointed to by the motion vector in a reference picture list.
  • Motion compensation unit 246 may also generate syntax elements associated with blocks and video slices for use by video decoder 30 when decoding picture blocks of video slices.
  • the intra prediction unit 254 is configured to obtain, for example, a picture block 203 (current picture block) and one or more previously reconstructed blocks, such as reconstructed neighboring blocks, that receive the same picture for intra estimation.
  • the encoder 20 may be used to select an intra prediction mode from a plurality of (predetermined) intra prediction modes.
  • Embodiments of the encoder 20 may be used to select an intra-prediction mode based on an optimization criterion, such as based on a minimum residual (eg, an intra-prediction mode that provides a prediction block 255 most similar to the current picture block 203) or a minimum code rate distortion.
  • an optimization criterion such as based on a minimum residual (eg, an intra-prediction mode that provides a prediction block 255 most similar to the current picture block 203) or a minimum code rate distortion.
  • the intra prediction unit 254 is further configured to determine the intra prediction block 255 based on the intra prediction parameters of the intra prediction mode as selected. In any case, after selecting the intra prediction mode for the block, the intra prediction unit 254 is further configured to provide the intra prediction parameters to the entropy encoding unit 270, that is, to provide an indication of the selected intra prediction mode for the block. Information. In one example, the intra prediction unit 254 may be used to perform any combination of intra prediction techniques described below.
  • the entropy coding unit 270 is configured to apply an entropy coding algorithm or scheme (for example, a variable length coding (VLC) scheme, a context adaptive VLC (context adaptive VLC, CAVLC) scheme, an arithmetic coding scheme, and a context adaptive binary arithmetic Coding (context, adaptive binary coding, CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE) coding, or other entropy Encoding method or technique) applied to one or all of the quantized residual coefficients 209, inter prediction parameters, intra prediction parameters, and / or loop filter parameters (or not applied) to obtain
  • VLC variable length coding
  • CAVLC context adaptive VLC
  • CABAC syntax-based context-adaptive binary arithmetic coding
  • PIPE probability interval partitioning entropy
  • the encoded picture data 21 is output in the form of, for example, an encoded bit stream 21.
  • the encoded bitstream may be transmitted to video decoder 30 or archived for later transmission or retrieval by video decoder 30.
  • the entropy encoding unit 270 may also be used to entropy encode other syntax elements of the current video slice that is being encoded.
  • video encoder 20 may be used to encode a video stream.
  • the non-transform-based encoder 20 may directly quantize the residual signal without a transform processing unit 206 for certain blocks or frames.
  • the encoder 20 may have a quantization unit 208 and an inverse quantization unit 210 combined into a single unit.
  • FIG. 3 illustrates an exemplary video decoder 30 for implementing the techniques of the present application.
  • the video decoder 30 is configured to receive, for example, encoded picture data (eg, an encoded bit stream) 21 encoded by the encoder 20 to obtain a decoded picture 231.
  • video decoder 30 receives video data from video encoder 20, such as an encoded video bitstream and associated syntax elements representing picture blocks of encoded video slices.
  • the decoder 30 includes an entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a reconstruction unit 314 (such as a summer 314), a buffer 316, a loop filter 320, The decoded picture buffer 330 and the prediction processing unit 360.
  • the prediction processing unit 360 may include an inter prediction unit 344, an intra prediction unit 354, and a mode selection unit 362.
  • video decoder 30 may perform a decoding pass that is substantially inverse to the encoding pass described with reference to video encoder 20 of FIG. 2.
  • the entropy decoding unit 304 is configured to perform entropy decoding on the encoded picture data 21 to obtain, for example, quantized coefficients 309 and / or decoded encoding parameters (not shown in FIG. 3), for example, inter prediction, intra prediction parameters , (Filtered) any or all of the loop filter parameters and / or other syntax elements.
  • the entropy decoding unit 304 is further configured to forward the inter prediction parameters, the intra prediction parameters, and / or other syntax elements to the prediction processing unit 360.
  • Video decoder 30 may receive syntax elements at the video slice level and / or the video block level.
  • the inverse quantization unit 310 may be functionally the same as the inverse quantization unit 110, the inverse transform processing unit 312 may be functionally identical to the inverse transform processing unit 212, the reconstruction unit 314 may be functionally the same as the reconstruction unit 214, and the buffer 316 may be functionally Like the buffer 216, the loop filter 320 may be functionally the same as the loop filter 220, and the decoded picture buffer 330 may be functionally the same as the decoded picture buffer 230.
  • the prediction processing unit 360 may include an inter prediction unit 344 and an intra prediction unit 354.
  • the inter prediction unit 344 may be functionally similar to the inter prediction unit 244 and the intra prediction unit 354 may be functionally similar to the intra prediction unit 254.
  • the prediction processing unit 360 is generally used to perform block prediction and / or obtain a prediction block 365 from the encoded data 21, and to receive or obtain prediction-related parameters from, for example, an entropy decoding unit 304 (explicitly or implicitly) and / or Information about the selected prediction mode.
  • the intra-prediction unit 354 of the prediction processing unit 360 is used for the intra-prediction mode based on the signal representation and the previously decoded block from the current frame or picture Data to generate a prediction block 365 for a picture block of the current video slice.
  • the inter-prediction unit 344 e.g., a motion compensation unit
  • the prediction processing unit 360 is used to base the motion vector and receive the
  • the other syntax elements generate a prediction block 365 for a video block of the current video slice.
  • a prediction block may be generated from a reference picture in a reference picture list.
  • the video decoder 30 may construct a reference frame list using a default construction technique based on the reference pictures stored in the DPB 330: List 0 and List 1.
  • the prediction processing unit 360 is configured to determine prediction information for a video block of a current video slice by analyzing a motion vector and other syntax elements, and use the prediction information to generate a prediction block for a current video block that is being decoded. For example, the prediction processing unit 360 uses some of the received syntax elements to determine a prediction mode (e.g., intra or inter prediction) of a video block used to encode a video slice, an inter prediction slice type (e.g., B slice, P slice or GPB slice), construction information for one or more of the reference picture lists for the slice, motion vectors for each inter-coded video block for the slice, each warp for the slice The inter-prediction status and other information of the inter-coded video block to decode the video block of the current video slice.
  • a prediction mode e.g., intra or inter prediction
  • an inter prediction slice type e.g., B slice, P slice or GPB slice
  • construction information for one or more of the reference picture lists for the slice motion vectors for each inter-coded video block
  • the inverse quantization unit 310 may be used for inverse quantization (ie, inverse quantization) of the quantized transform coefficients provided in the bitstream and decoded by the entropy decoding unit 304.
  • the inverse quantization process may include using the quantization parameters calculated by video encoder 20 for each video block in the video slice to determine the degree of quantization that should be applied and also to determine the degree of inverse quantization that should be applied.
  • the inverse transform processing unit 312 is configured to apply an inverse transform (for example, an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process) to the transform coefficients to generate a residual block in the pixel domain.
  • an inverse transform for example, an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process
  • Reconstruction unit 314 (e.g., summer 314) is used to add inverse transform block 313 (i.e., reconstructed residual block 313) to prediction block 365 to obtain reconstructed block 315 in the sample domain, such as by The sample values of the reconstructed residual block 313 are added to the sample values of the prediction block 365.
  • the loop filter unit 320 (during or after the encoding cycle) is used to filter the reconstructed block 315 to obtain the filtered block 321 so as to smoothly perform pixel conversion or improve video quality.
  • the loop filter unit 320 may be used to perform any combination of filtering techniques described below.
  • the loop filter unit 320 is intended to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or other filters such as a bilateral filter, Adaptive loop filters (adaptive loop filters, ALF), or sharpening or smoothing filters, or cooperative filters.
  • the loop filter unit 320 is shown as an in-loop filter in FIG. 3, in other configurations, the loop filter unit 320 may be implemented as a post-loop filter.
  • the decoded video block 321 in a given frame or picture is then stored in a decoded picture buffer 330 that stores reference pictures for subsequent motion compensation.
  • the decoder 30 is used, for example, to output a decoded picture 31 through an output 332 for presentation to or review by a user.
  • video decoder 30 may be used to decode the compressed bitstream.
  • the decoder 30 may generate an output video stream without the loop filter unit 320.
  • the non-transform-based decoder 30 may directly inversely quantize the residual signal without the inverse transform processing unit 312 for certain blocks or frames.
  • the video decoder 30 may have an inverse quantization unit 310 and an inverse transform processing unit 312 combined into a single unit.
  • FIG. 4 is an explanatory diagram of an example of a video encoding system 40 including the encoder 20 of FIG. 2 and / or the decoder 30 of FIG. 3 according to an exemplary embodiment.
  • the system 40 may implement a combination of various techniques of the present application.
  • the video encoding system 40 may include an imaging device 41, a video encoder 20, a video decoder 30 (and / or a video encoder implemented by the logic circuit 47 of the processing unit 46), an antenna 42, One or more processors 43, one or more memories 44, and / or a display device 45.
  • the imaging device 41, antenna 42, processing unit 46, logic circuit 47, video encoder 20, video decoder 30, processor 43, memory 44, and / or display device 45 can communicate with each other.
  • video encoding system 40 is shown with video encoder 20 and video decoder 30, in different examples, video encoding system 40 may include only video encoder 20 or only video decoder 30.
  • the video encoding system 40 may include an antenna 42.
  • the antenna 42 may be used to transmit or receive an encoded bit stream of video data.
  • the video encoding system 40 may include a display device 45.
  • the display device 45 may be used to present video data.
  • the logic circuit 47 may be implemented by the processing unit 46.
  • the processing unit 46 may include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, and the like.
  • the video encoding system 40 may also include an optional processor 43, which may similarly include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, and the like.
  • ASIC application-specific integrated circuit
  • the logic circuit 47 may be implemented by hardware, such as dedicated hardware for video encoding, and the processor 43 may be implemented by general software, operating system, and the like.
  • the memory 44 may be any type of memory, such as volatile memory (for example, Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), etc.) or non-volatile memory Memory (for example, flash memory, etc.).
  • the memory 44 may be implemented by a cache memory.
  • the logic circuit 47 may access the memory 44 (eg, for implementing an image buffer).
  • the logic circuit 47 and / or the processing unit 46 may include a memory (eg, a cache, etc.) for implementing an image buffer or the like.
  • video encoder 20 implemented by logic circuits may include an image buffer (eg, implemented by processing unit 46 or memory 44) and a graphics processing unit (eg, implemented by processing unit 46).
  • the graphics processing unit may be communicatively coupled to the image buffer.
  • the graphics processing unit may include a video encoder 20 implemented by a logic circuit 47 to implement the various modules discussed with reference to FIG. 2 and / or any other encoder system or subsystem described herein.
  • Logic circuits can be used to perform various operations discussed herein.
  • Video decoder 30 may be implemented in a similar manner by logic circuit 47 to implement the various modules discussed with reference to decoder 30 of FIG. 3 and / or any other decoder system or subsystem described herein.
  • video decoder 30 implemented by a logic circuit may include an image buffer (implemented by processing unit 2820 or memory 44) and a graphics processing unit (eg, implemented by processing unit 46).
  • the graphics processing unit may be communicatively coupled to the image buffer.
  • the graphics processing unit may include a video decoder 30 implemented by a logic circuit 47 to implement various modules discussed with reference to FIG. 3 and / or any other decoder system or subsystem described herein.
  • the antenna 42 of the video encoding system 40 may be used to receive an encoded bit stream of video data.
  • the encoded bitstream may contain data, indicators, index values, mode selection data, etc. related to encoded video frames discussed herein, such as data related to coded segmentation (e.g., transform coefficients or quantized transform coefficients) , (As discussed) optional indicators, and / or data defining code partitions).
  • the video encoding system 40 may also include a video decoder 30 coupled to the antenna 42 and used to decode the encoded bitstream.
  • the display device 45 is used to present video frames.
  • FIG. 5 is a simplified block diagram of an apparatus 500 that can be used as either or both of the source device 12 and the destination device 14 in FIG. 1 according to an exemplary embodiment.
  • the device 500 may implement the technology of the present application.
  • the device 500 may be in the form of a computing system including a plurality of computing devices, or in the form of a single computing device such as a mobile phone, tablet computer, laptop computer, notebook computer, desktop computer, and the like.
  • the processor 502 in the apparatus 500 may be a central processing unit.
  • the processor 502 may be any other type of device or multiple devices capable of manipulating or processing information, existing or to be developed in the future.
  • speed and efficiency advantages can be achieved using more than one processor.
  • the memory 504 in the device 500 may be a read-only memory (ROM) device or a random access memory (RAM) device. Any other suitable type of storage device can be used as the memory 504.
  • the memory 504 may include code and data 506 accessed by the processor 502 using the bus 512.
  • the memory 504 may further include an operating system 508 and an application program 510, which contains at least one program that permits the processor 502 to perform the methods described herein.
  • the application program 510 may include applications 1 to N, and applications 1 to N further include a video encoding application that performs the methods described herein.
  • the device 500 may also include additional memory in the form of a slave memory 514, which may be, for example, a memory card for use with a mobile computing device. Because a video communication session may contain a large amount of information, this information may be stored in whole or in part in the slave memory 514 and loaded into the memory 504 for processing as needed.
  • the apparatus 500 may also include one or more output devices, such as a display 518.
  • the display 518 may be a touch-sensitive display combining a display and a touch-sensitive element operable to sense a touch input.
  • the display 518 may be coupled to the processor 502 through a bus 512.
  • other output devices may be provided that allow the user to program or otherwise use the device 500, or provide other output devices as an alternative to the display 518.
  • the display can be implemented in different ways, including through a liquid crystal display (LCD), a cathode-ray tube (CRT) display, a plasma display, or a light emitting diode diode (LED) displays, such as organic LED (OLED) displays.
  • LCD liquid crystal display
  • CTR cathode-ray tube
  • plasma display a plasma display
  • LED light emitting diode diode
  • OLED organic LED
  • the apparatus 500 may further include or be in communication with an image sensing device 520, such as a camera or any other image sensing device 520 that can or will be developed in the future to sense an image, such as An image of a user running the device 500.
  • the image sensing device 520 may be placed directly facing a user of the running apparatus 500.
  • the position and optical axis of the image sensing device 520 may be configured such that its field of view includes an area immediately adjacent to the display 518 and the display 518 is visible from the area.
  • the device 500 may also include or be in communication with a sound sensing device 522, such as a microphone or any other sound sensing device that can or will be developed in the future to sense the sound near the device 500.
  • the sound sensing device 522 may be placed directly facing the user of the operating device 500 and may be used to receive a sound, such as a voice or other sound, emitted by the user when the device 500 is running.
  • the processor 502 and the memory 504 of the apparatus 500 are shown in FIG. 5 as being integrated in a single unit, other configurations may be used.
  • the operation of the processor 502 may be distributed among multiple directly-coupled machines (each machine has one or more processors), or distributed in a local area or other network.
  • the memory 504 may be distributed among multiple machines, such as a network-based memory or a memory among multiple machines running the apparatus 500.
  • the bus 512 of the device 500 may be formed by multiple buses.
  • the slave memory 514 may be directly coupled to other components of the device 500 or may be accessed through a network, and may include a single integrated unit, such as one memory card, or multiple units, such as multiple memory cards. Therefore, the apparatus 500 can be implemented in various configurations.
  • Figure 6 describes the division of binary tree, tri-tree and quad-tree, where:
  • a quadtree is a tree-like structure, meaning that a node can be divided into four child nodes.
  • the H265 video coding standard uses a quadtree-based CTU division method: the CTU serves as the root node, and each node corresponds to a square area; a node can no longer be divided (in this case, its corresponding area is a CU), or this
  • the node is divided into four nodes at the next lower level, that is, the square area is divided into four square areas of the same size (the length and width are each half of the length and width of the area before division), and each area corresponds to a node. As shown in Figure 6 (a).
  • a binary tree is a tree-like structure, meaning that a node can be divided into two child nodes.
  • a node on a binary tree structure may not be divided, or this node may be divided into two nodes at a lower level.
  • a triple tree is a tree-like structure, meaning that a node can be divided into three child nodes.
  • the nodes on a tri-tree structure may not be divided, or this node may be divided into three lower-level nodes.
  • the H.265 video coding standard divides a frame of image into non-overlapping coding tree units (CTU).
  • the size of the CTU can be set to 64 ⁇ 64 (the size of the CTU can also be set to other values, such as the CTU in the JVET reference software JEM The size is increased to 128 ⁇ 128 or 256 ⁇ 256).
  • a 64 ⁇ 64 CTU contains a rectangular pixel lattice of 64 columns and 64 pixels in each column, and each pixel contains a luminance component and / or a chrominance component.
  • H.265 uses a quad-tree (QT) -based CTU division method.
  • the CTU is used as the root node of the quad tree, and the CTU is recursively divided into several leaves according to the quad tree division method.
  • a node corresponds to an image area. If the node is not divided, the node is called a leaf node, and its corresponding image area forms a CU. If the node continues to be divided, the image area corresponding to the node is divided into four regions of the same size (the (The length and width are each half of the divided area.) Each area corresponds to a node. You need to determine whether these nodes will be divided separately.
  • the quadtree level (qtDepth) of the root node is 0, and the quadtree level of the node is the quadtree level of the parent node of the node plus 1.
  • the size and shape of the nodes in the following refers to the size and shape of the image area corresponding to the nodes.
  • the quadtree level is 0
  • Each of these four 32 ⁇ 32 nodes can choose to continue to divide or not to divide according to its corresponding split_cu_flag; if a 32 ⁇ 32 node continues to divide, four 16 ⁇ 16 nodes (four The level of the fork tree is 2). And so on, until all nodes are no longer divided, such a CTU is divided into a group of CUs.
  • the minimum size (size) of the CU is identified in the sequence parameter set (SPS: Sequence Parameter Set). For example, 8 ⁇ 8 is the smallest CU.
  • SPS Sequence Parameter Set
  • this leaf node When a node is parsed as a leaf node, this leaf node is a CU, and further analyzes the coding information corresponding to the CU (including the prediction mode and transformation coefficients of the CU, such as the coding_unit () syntax structure in H.265). Then, the CU is subjected to decoding, prediction, inverse quantization, inverse transform, and loop filtering according to the encoded information to generate a reconstructed image corresponding to the CU.
  • the quad-tree structure enables the CTU to be divided into a group of CUs of a suitable size according to the local characteristics of the image, for example, smooth regions are divided into larger CUs, and texture-rich regions are divided into smaller CUs.
  • VTM Versatile video coding Test Model
  • BT binary tree
  • TT ternary tree
  • Binary tree partitioning divides a node into two sub-nodes. There are two specific binary tree partitioning methods:
  • Three-tree partitioning divides a node into three sub-nodes. There are two specific methods for three-tree partitioning:
  • the division method of QT cascade BT / TT is used in VTM, referred to as QT-MTT (Quad Tree Plus Multi-Type Tree) division method. More specifically, the CTU generates QT leaf nodes through QT division. The nodes in the QT can be further divided into four QT child nodes using quad-tree division, or a QT leaf node can be generated without using quad-section division. The QT leaf node serves as the root node of the MTT. Nodes in MTT can be divided into sub-nodes using one of the four division methods: horizontal dichotomy, vertical dichotomy, horizontal dichotomy, and vertical dichotomy, or they can no longer be divided into one MTT leaf node.
  • the leaf node of MTT is a coding unit CU.
  • Figure 7 shows an example of dividing a CTU into 16 CUs such as a to p using QT-MTT.
  • Each endpoint on the right of Figure 7 represents a node, 4 nodes connected to a node represent quadtree partition, 2 nodes connected to a node represent binary tree partition, and 3 nodes connected to a node represent tritree partition.
  • the solid line represents the QT division
  • the dashed line represents the first-level division of a Multi-Type Tree (MTT)
  • the dot-dash line represents the second-level division of the MTT.
  • a to p are 16 MTT leaf nodes, and each MTT leaf node is 1 CU.
  • a CTU obtains the CU division diagram shown in the left diagram of FIG. 7 according to the division manner in the right diagram of FIG. 7.
  • each CU has a QT level (Quad-tree depth, QT depth, also called QT depth) and an MTT level (Multi-Type Tree depth, MTT depth, also called MTT depth).
  • QT level indicates the QT level of the QT leaf node to which the CU belongs
  • MTT level indicates the MTT level of the MTT leaf node to which the CU belongs.
  • the root node of the coding tree has a QT level of 0 and an MTT level of 0. If a node on the coding tree is divided by QT, the QT level of the child node obtained by the division is the QT level of the node plus 1, and the MTT level is unchanged.
  • the MTT level of the child node obtained by the division is the MTT level of the node plus 1, and the QT level is unchanged.
  • the QT level of a, b, c, d, e, f, g, i, and j is 1, and the MTT level is 2;
  • the QT level of h is 1, and the MTT level is 1;
  • the QT level for l and m is 2 and the MTTT level is 1.
  • the image block at the leaf node position under the coding tree is used as the coding unit.
  • the coding process mainly includes intra prediction (Intertra Prediction), inter prediction (Inter Prediction), transformation (Transform), and quantization (Quantization). ), Entropy encoding, in-loop filtering (mainly de-blocking filtering), etc., can be implemented by the codec described in Figures 1 to 5 of this article . That is, intra-frame prediction or inter-frame prediction is performed after the image is divided into coding units, and transform and quantization are performed after the residual is obtained, and finally entropy coding is performed and a code stream is output.
  • the coding unit is an array of M ⁇ N size composed of pixels (M may be equal to N or not equal to N), and the pixel value of each pixel point position is known.
  • Intra prediction refers to using the pixel values of pixels in the reconstructed area in the current image to predict the pixel values of pixels in the current image block / coding unit.
  • Inter prediction is to find a matching reference block for the current image block / encoding unit in the current image in the reconstructed image, and use the pixel value of the pixel point in the reference block as the pixel of the pixel point in the current image block / encoding unit.
  • Value prediction information or prediction value in the following, information and values are no longer distinguished
  • this process is called motion estimation (ME), and the motion information of the current image block / coding unit is transmitted.
  • ME motion estimation
  • the motion information of the current image block / coding unit includes indication information of the prediction direction (usually forward prediction, backward prediction, or bidirectional prediction), and one or two motion vectors (Motion vector, MV), and indication information of the picture where the reference block is located (usually referred to as a reference frame index, Reference index).
  • Forward prediction refers to that the current image block / coding unit selects a reference image from the forward reference image set to obtain a reference block.
  • Backward prediction refers to that the current coding unit selects a reference image from a set of backward reference images to obtain a reference block.
  • Bidirectional prediction refers to selecting a reference image from the forward and backward reference image sets to obtain a reference block. When the bidirectional prediction method is used, there are two reference blocks in the current coding unit, and each reference block needs a motion vector and a reference frame index to indicate, and then the pixel points in the current block are determined according to the pixel values of the pixel points in the two reference blocks. The predicted value of the pixel value.
  • the motion estimation process needs to try multiple reference blocks in the reference image for the current image block / coding unit. Which one or several reference blocks are ultimately used for prediction is Rate-distortion optimization (RDO) or other methods. determine.
  • RDO Rate-distortion optimization
  • the pixel value of the pixel point in the current image block / coding unit is subtracted from the corresponding prediction information to obtain residual information, and then Discrete Cosine Transformation (DCT), etc.
  • DCT Discrete Cosine Transformation
  • the method transforms the residual information, and then uses quantized entropy coding to obtain the code stream.
  • the prediction signal is added with the reconstructed residual signal, further filtering operations are required to obtain a reconstructed signal and use it as a reference signal for subsequent encoding.
  • Decoding is equivalent to the reverse process of encoding.
  • the residual information is obtained by inverse quantization and inverse transformation using entropy decoding, and the decoded bitstream determines whether the current coding unit uses intra prediction or inter prediction. If it is intra prediction, the pixel information of pixels in the surrounding reconstructed area is used to construct prediction information according to the used intra prediction method. If it is inter prediction, you need to parse out the motion information, use the parsed motion information to determine the reference block in the reconstructed image, and use the pixel values of the pixels in the block as prediction information. This process is called motion compensation (Motion Compensation, MC). Reconstruction information can be obtained by using prediction information plus residual information through a filtering operation.
  • Motion Compensation Motion Compensation
  • AMVP Advanced Motion Vector Prediction
  • Merge mode Merge mode
  • AMVP mode For AMVP mode, first obtain spatial or temporal candidates from the motion information of the current image block / coding unit in the spatial or temporally adjacent coded units, construct a motion vector prediction candidate list, and then determine from the motion vector prediction candidate list
  • the optimal motion vector is used as the motion vector predictor (MVP) of the current image block / coding unit.
  • the encoding end passes the index value of the selected motion vector prediction value in the motion vector prediction candidate list and the reference frame index value to the decoding end. Further, a motion search is performed in the neighborhood centered on the MVP to obtain the actual motion vector of the current image block / encoding unit, and the encoding end transmits the difference (Motion vector difference) between the MVP and the actual motion vector to the decoding end.
  • MVP motion vector predictor
  • For the Merge mode first obtain spatial and temporal candidates from the motion information of the current coding unit in the spatial or temporally adjacent coded units, construct a fusion motion information candidate list, and then determine from the fusion motion information candidate list at the rate-distortion cost.
  • the optimal motion information is used as the motion information of the current coding unit, and then the index value of the position of the optimal motion information in the fusion motion information candidate list (denoted as merge index, the same below) is transmitted to the decoding end.
  • the current coding unit spatial and time domain candidates from the motion information of the current coding unit spatial domain or temporally adjacent coded units are shown in Figure 8.
  • the spatial domain candidates come from the five spatially adjacent blocks (A0, A1, B0, B1 and B2), by sequentially checking A1, B1, B0, A0, and B2 in sequence, up to four candidates can be inserted in the merge list in the stated order.
  • some additional redundancy checks are performed before using all motion data of neighboring blocks as merge candidates. These redundancy checks can be divided into two categories for two different purposes: a. Avoiding candidates with redundant motion data in the list; b. Preventing the merging of two redundant syntaxes that can be represented in other ways Partition.
  • N is the number of spatial merge candidates
  • the complete redundancy check will be determined by Comparison of secondary exercise data.
  • ten motion data comparisons will be required to ensure that all candidates in the merge list have different motion data.
  • the inspection of redundant motion data has been reduced to a subset, thereby maintaining a significant reduction in comparison logic while maintaining coding efficiency.
  • no more than two comparisons are performed for each candidate, resulting in a total of five comparisons. Given the order of ⁇ A1, B1, B0, A0, B2 ⁇ , B0 checks only B1, A0 checks only A1, and B2 checks only A1 and B1.
  • partition redundancy check the bottom PU and top PU of the 2N ⁇ N partition are merged by selecting candidate B1. This will result in one CU having two PUs with the same motion data, which can be signaled equally as a 2N ⁇ 2N CU. Overall, this check applies to all second PUs with rectangular and asymmetric partitions 2N ⁇ N, 2N ⁇ nU, 2N ⁇ nD, N ⁇ 2N, nR ⁇ 2N, and nL ⁇ 2N. It should be noted that for the spatial merge candidate, only the redundancy check is performed, and the motion data is copied from the candidate block as it is. Therefore, no motion vector scaling is needed here.
  • the motion vector of the temporal merge candidate comes from the block at the lower right and center of the same position block (Co-located) in the reference frame. This block is the most suitable to provide a good temporal motion vector predictor (TMVP).
  • TMVP temporal motion vector predictor
  • the length of the merge candidate list is fixed. After spatial and temporal merging candidates have been added, it may happen that the list does not yet have a fixed length. To compensate for the coding efficiency loss that occurs with non-length adaptive list index signaling, additional candidates are generated. Depending on the type of slice, up to two candidates can be used to completely populate the list: a. Combined bi-directional prediction candidates; b. Zero motion vector candidates.
  • the bidirectional prediction slice by combining the motion data of the reference picture list 0 of one candidate with the motion data of the list 1 of another candidate, another candidate can be generated based on the existing candidate. This is done by copying ⁇ x 0 , ⁇ y 0 , ⁇ t 0 from one candidate such as the first candidate, and ⁇ x 1 , ⁇ y 1 , ⁇ t 1 from another candidate such as the second candidate.
  • Different combinations are predefined and given in Table 1.
  • zero motion vector candidates are calculated to make the list complete. All zero motion vector candidates have one zero displacement motion vector for one-way prediction slices and two zero displacement motion vectors for two-way prediction slices.
  • the reference index is set equal to zero and incremented by one for each additional candidate until the maximum number of reference indexes is reached. If this is the case, and there are other candidates missing, these candidates are created using a reference index equal to zero. For all other candidates, no redundancy check is performed, as the results show that omitting these checks does not cause a loss of coding efficiency.
  • merge_flag indicates that the block merge is used to obtain motion data.
  • merge_idx further determines the candidates in the merge list that provide all the motion data required by the MCP.
  • the number of candidates in the merge list is also signaled in the slice header. Since the default value is five, it is expressed as the difference from five (five_minus_max_num_merge_cand). In this way, five are signaled with a short codeword of 0, while only one candidate is signaled with a longer codeword of 4.
  • the impact on the merge candidate list construction process the entire process remains the same, but after the list contains the maximum number of merge candidates, the process terminates.
  • the maximum value of the merge index encoding is given by the number of space and time candidates available in the list.
  • the index can be efficiently encoded as a flag when only two candidates are available, for example.
  • the entire merge candidate list must be constructed to understand the actual number of candidates. Assuming neighboring blocks that are unavailable due to a transmission error, it will no longer be possible to parse the merge index.
  • the key application of the block merge concept in HEVC is the combination with the skip mode.
  • a skip mode was used to indicate blocks that speculate rather than explicitly signal motion data, and predict that the residual is zero, that is, no transform coefficients are sent.
  • the skip_flag is signaled at the beginning of each CU in the inter-picture prediction slice, which means the following: a. The CU contains only one PU (2N ⁇ 2N partition type); b. Use the merge mode to Get motion data (merge_flag is equal to 1); c. There is no residual data in the code stream.
  • a parallel merge estimation level indicating regions is introduced in HEVC, where a merge candidate list can be obtained independently by checking whether a candidate block is located in the merge estimation region (MER). Candidate blocks in the same MER are not included in the merge candidate list. Therefore, its motion data does not need to be available during list construction.
  • this level is, for example, 32, then all prediction units in a 32 ⁇ 32 region can build a merge candidate list in parallel, because all merge candidates in the same 32 ⁇ 32MER are not inserted into the list.
  • the merge candidate list for PU 2-6 cannot contain motion data from these PUs. Therefore, for example when looking at PU5, no merge candidates are available and therefore are not inserted into the merge candidate list. In this case, the merged list of PU5 consists of only temporal candidates (if available) and zero MV candidates.
  • the parallel merge estimation level is adaptive and is signaled as log2_parallel_merge_level_minus2 in the picture parameter set.
  • the MER obtained by the above MER determination method contains multiple CUs smaller than MER, the MER must contain multiple complete CUs, that is, multiple CUs smaller than MER are completely contained in one MER No CU with a size smaller than MER is included in multiple MERs at the same time.
  • the MER obtained by the above MER determination method can also ensure that if a CU is the same size as the MER, the CU must be included in a MER.
  • the inspection process mainly includes:
  • the airspace candidate is not available. Otherwise, the availability judgment rules of the airspace candidate in the HEVC standard are used to further judge the availability of the airspace candidate.
  • MER0 includes a part of a, b, and c
  • MER1 includes a part of c, e, and f.
  • the spatial domain candidates in the same MER as the current image block are marked as unavailable. If the number of available spatial domain candidates is reduced, the coding performance will be reduced.
  • the present invention proposes a solution.
  • the MER construction method is modified so that when one MER contains multiple CUs This MER must contain multiple complete CUs.
  • multiple CUs can perform motion estimation or decoding in parallel.
  • the airspace candidate is in the same MER as the current image block, a non-identical MER airspace candidate at a preset position is added.
  • airspace candidates are spatial candidates. Spatial candidates can be considered as a set of coordinates.
  • the spatial domain candidate includes multiple coordinate points, and the coordinates of each coordinate point can indicate the position of a coding block.
  • the coordinate points in the spatial domain candidate of the current coding block indicate multiple spatial domain neighboring blocks of the current coding block.
  • the positional relationship between the multiple spatial domain neighboring blocks and the current coding block is shown in FIG. 8.
  • the multiple spatial domain neighboring blocks are A 0 , A 1 , B 0 , B 1 , B 2 .
  • the spatial domain candidate of the current coding block includes more coordinate points, that is, the coordinate points in the spatial domain candidate of the current coding block indicate multiple spatial domain neighboring blocks of the current coding block, and also include Other airspace blocks located near the current coded block.
  • (xN, yN) indicates the coordinates of the first coding block, and (xN, yN) is also the coordinates of the current spatial domain candidate.
  • (xP, yP) indicates the coordinates of the current coding block, and the current coding block is the current CU or PU.
  • (xMER, yMER) indicates the coordinates of the upper left corner of the current MER.
  • (xM, yM) indicates the coordinates of the second coding block, or the coordinates corresponding to the second coding block are (xM, yM), (xM, yM) is the coordinates of the new spatial candidate.
  • (xN, yN) can be the coordinates of the upper left corner of the first encoding block
  • (xP, yP) can be the coordinates of the upper left corner of the current encoding block
  • (xMER, yMER) can be the upper left corner of the current MER.
  • the coordinates of the corner, then (xM, yM) is the coordinates of the upper left corner of the second coding block.
  • the coordinates of the above several blocks should be the values in the same coordinate system. This value can be an absolute value or a relative value relative to a point in the coordinate system, such as the origin of the coordinate system. No restrictions. And, in the same implementation, the above-mentioned several coordinates should be taken from the same position of these blocks, for example, all of them are the coordinates of the upper left corner of these blocks. In addition, the above coordinates may also be coordinates of other positions of the above blocks, such as the coordinates of the upper right corner, or the coordinates of the lower right corner, or the coordinates of the center point, etc., as long as it can indicate that the above blocks are in a coordinate system The position is sufficient, and this application is not limited. Therefore, the positional relationship between the first coding block and the current coding block can be expressed by a mathematical relationship between xN and xP, and yN and yP.
  • FIG. 12 is a flowchart illustrating an example operation of a video decoder (for example, the video decoder 30 of FIG. 3) according to an embodiment of the present application.
  • a video decoder for example, the video decoder 30 of FIG. 3
  • One or more structural elements of video decoder 30 may be used to perform the technique of FIG. 9. This embodiment includes:
  • the division information of the coding block is the division information of the coding tree unit that is coded, and the division information determines how the coding tree unit is divided into multiple coding blocks, and the current coding block is the multiple One of the coding blocks.
  • the coding tree partition information is obtained by the video decoder 30 from the received code stream. Specifically, the entropy decoding unit in the video decoder 30 may perform this step.
  • the partition information may be a quad-tree (QT) partition depth N of the current coding block and a multi-type tree (MTT) partition depth M of the current coding block. In this case, the current coding
  • the division depth of the block is identified by two independent values of QT, and MTT.
  • the division depth N of the current coding block is the sum of the QT division depth Dq of the current coding block and the MTT division depth Dm of the current block.
  • the Db of the node is the root node of the node. If Db is increased by 1, if the node is a leaf node of MTT and the node is a non-intermediate node among the three nodes obtained by the tri-tree division method, Db of the node is the Db of the root node of the node. 2. Taking FIG.
  • the nodes are leaf nodes a, b, c, d, e, f, g, h, i, j, k, 1, m, n, o, and p that cannot be further divided.
  • the node may also be a node that needs to be further divided during the QT-MTT division process of the CTU. Taking FIG.
  • the nodes corresponding to f and g may be nodes corresponding to i and j, may be nodes corresponding to l, m, n, o, and p, may be nodes corresponding to l and m, and may be a, b, c, d,
  • the nodes corresponding to e, f, and g may be nodes corresponding to h, i, and j.
  • the embodiments of the present invention provide the following three manners for determining the area covered by the current MER according to the division depth N of the current node.
  • the first threshold T1 is a non-negative integer set in advance, and may be 0, 1, 2, or 3, for example.
  • the coordinates of the upper left corner (xK, yK) of the K-level quadtree node are:
  • xK xCb- (xCb & ((1 ⁇ K1) -1))
  • yK yCb- (yCb & ((1 ⁇ K1) -1))
  • the width and height of the K-level quadtree node are equal to (1 ⁇ K1).
  • the current CU may be determined as the current MER, and at this time, the current MER includes only one CU.
  • the division depth N of the current node There are two ways to determine the division depth N of the current node.
  • the QT depth of d, e, f, g, h, i, j, k is 1, and the QT depth of l, m, n, o, p is 2; the other is to divide the current node's depth N It is determined as the sum of the QT depth of the current node and the MTT depth of the current node, for example, the QT depth of the node k in FIG.
  • FIG. 7 is 1, and the MTT depth is 0, so the partition depth N of the node k is 1; FIG. 7
  • the node a in the QT depth is 1, and the MTT depth is 2, so the partition depth N of the node a is 3.
  • the QT depth of the root node of the coding tree is 0. If a node in the QT coding tree is divided by QT, the QT depth of the child nodes obtained by division is the QT depth of the node plus 1; if a node in the QT does not use QT division, this node is a MTT root node.
  • the MTT root depth of the MTT node is 0; if a node on the MTT coding tree is divided by MTT, the MTT depth of the child node obtained is the MTT depth of the node plus 1, and the QT depth of the child node is the QT depth of the node . That is to say, starting from the CTU root node, the current node is obtained after S1 QT partition and S2 MTT partition, then the QT depth of the current node is S1, and the MTT depth is S2.
  • the MTT node with a depth of 1 includes: nodes corresponding to a and b (that is, a node including the area where a and b are located), nodes corresponding to c and d, nodes corresponding to e, f, and g, h Corresponding nodes, nodes corresponding to i and j, and nodes corresponding to l and nodes corresponding to m.
  • MTTdepth of 1 means that only the QT leaf nodes obtained after QT partitioning of the CTU can be obtained by performing MTT partitioning once; MTTdepth The node for 2 includes: a corresponding node, b corresponding node, c corresponding node, d corresponding node, e corresponding node, f corresponding node, g corresponding node, i corresponding node, and j corresponding node.
  • a MTT depth of 2 indicates a node obtained by performing a second MTT division on a QT leaf node obtained after QT division of a CTU.
  • the current motion estimation parallel region (referred to as the current MER) is determined as the region covered by the first parent node.
  • the first layer parent node PN (1) of the current CU is the parent node of the coding tree node where the current CU is located
  • the second layer parent node of the current CU is the parent node of the node PN (1)
  • so on that is, the current CU
  • the p-level parent node PN (p) of the PN is the parent node of the p-1 level parent node PN (p-1) of the coding tree node where the CU is currently located. For example, in FIG.
  • the first-level parent node of a is a node composed of a and b regions
  • the second-layer parent node of a is a node composed of a, b, c, d, e, f, and g regions.
  • the partition depth of a node is equal to the first threshold T1
  • the number of pixels (that is, the area of the MER) included in multiple MERs in the present invention may be different, and the size and position of the MER are related to the coding tree division.
  • the current CU may be determined as the current MER, and at this time, the current MER includes only one CU.
  • Method 3 Parse the coding tree partition information to obtain the first node. If the first node's partition depth N is equal to the first threshold T1, the first node is determined to be the current MER.
  • the current coding unit is a coding unit in the current MER.
  • the above coding tree is, for example, a coding tree based on QT-MTT, and is also a coding tree based on MTT, for example.
  • the division depth of the first node can be determined in one of the following ways.
  • the division depth N of the first node may be the QT depth of the first node.
  • the condition that the first node determines that the current MER also includes the MTT depth of the first node is equal to 0, that is, if the division depth N of the first node is equal to the first threshold T1 and the MTT depth of the first node is equal to 0, the first A node is determined as the current MER.
  • the current coding unit is a coding unit in the current MER, that is, the current coding unit is an MTT leaf node divided by the first node corresponding to the current MER.
  • the first node is determined as the current MER, that is, the position and size of the current MER are set to the position and size of the first node.
  • a first coding block where the first coding block is a coding block corresponding to a spatial candidate of the current coding block; determining whether the current coding block and the first coding block belong to the same MER; In a case where the current coding block and the first coding block belong to the same MER, based on the position relationship between the first coding block and the current coding block, and the information of the current MER, it is determined to be close to the current MER airspace.
  • a second encoding block wherein the information of the MER includes coordinates of the MER; and a candidate list of spatial motion information is constructed based on the second encoding block, and the second encoding block is located outside the current MER.
  • the MER to which the airspace candidate belongs and the MER to which the current CU belongs are found. If the airspace candidate and the current PU belong to the same MER, the airspace candidate If not available, a new airspace candidate should be determined, and the new airspace candidate corresponds to the second coding block.
  • this process can check A0, and then check A0, B0, A1, B1, and B2 in sequence.
  • the airspace motion information candidate list includes a reference frame index, a motion vector, and a reference direction when a coding mode of a current coding block is a MERGE mode, and includes a motion vector when a coding mode of the current coding block is an AMVP mode.
  • an airspace motion information candidate list is constructed based on the second encoding block, and the airspace motion information candidate list may be constructed to be based on motion information of the second encoding block.
  • all coded blocks in the MER range use the same spatial domain motion information candidate list.
  • the following describes several ways of determining a second coding block that is close to the current MER space based on the positional relationship between the first coding block and the current coding block, and the information of the current MER.
  • the width of the current MER is expressed as wMER
  • the height of the current MER is expressed as hMER
  • the new spatial candidate coordinates, that is, the coordinates of the second coding block are expressed as (xM, yM), which can be determined by the following methods:
  • Method 1 If the current airspace candidate is on the left side of the current CU, that is, xN-xP is equal to a preset integer value less than zero (for example, -1), and yN-yP is greater than or equal to zero, then xM is equal to xMER-1 and yM is equal to yN. If the current airspace candidate is above and above the current CU, that is, xN-xP is greater than or equal to zero, and yN-yP is equal to a preset integer value less than zero (for example, -1), then xM is equal to xN and yM is equal to yMER-1.
  • xN-xP is equal to a preset integer value less than zero (for example, -1)
  • yN-yP is equal to a preset integer value less than zero (for example, -1)
  • xM A preset integer value equal to or greater than xMER-1 and less than xP
  • yM is a preset integer value equal to or greater than yMER-1 and less than yP.
  • Method 2 Calculate a new airspace candidate based on the upper left coordinate of MER and the width wMER and height hMER of MER.
  • yM is equal to yMER + hMER and xM is equal to xMER-1.
  • yM is equal to yMER + hMER-1 and xM is equal to xMER-1.
  • B 0 yM is equal to yMER-1 and xM is equal to xMER + wMER.
  • B 1 yM is equal to yMER-1 and xM is equal to xMER + wMER-1.
  • xM is equal to xMER-1 and yM is equal to yMER-1.
  • Method 3 If xN-xP is less than zero, determine the new spatial candidate coordinates as (xMER-1, yMER + M), where M is greater than or equal to zero and less than or equal to 2 * hMER. If xN-xP is greater than or equal to zero and yN-yP is less than zero, the new spatial candidate coordinates are determined to be (xMER + N, yMER-1), and then located on the MER from the preset pixel position (xMER + N, yMER-1) A new airspace candidate on the side, where N is an integer, greater than or equal to -1, and less than or equal to 2 * wMER.
  • Method 4 If xN-xP is less than zero and yN-yP is greater than or equal to zero, determine the new spatial candidate coordinates as (xMER-1, yMER + M), where M is greater than or equal to zero and less than or equal to 2 * hMER. If yN-yP is less than zero, the new airspace candidate coordinate is determined to be (xMER + N, yMER-1), and a new airspace candidate located on the upper side of MER is obtained from a preset pixel position (xMER + N, yMER-1). , Where N is an integer, greater than or equal to -1, and less than or equal to 2 * wMER.
  • the new airspace candidates and corresponding new coding blocks that can meet the requirements can be determined, thereby improving the efficiency of coding and decoding.
  • the airspace motion information candidate list After obtaining the airspace motion information candidate list, other candidates can also be added to the fusion motion information candidate list or motion vector prediction candidate list according to the existing related technologies. Other candidates include, but are not limited to, time domain candidates, zero motion information, etc. .
  • This process is prior art and can be performed with reference to the HEVC standard or VTM.
  • the candidate motion information list of the current coding block After the candidate motion information list of the current coding block is constructed, the motion information of the current CU is obtained. This step is a prior art, and the acquisition timing may be before the time domain motion information candidate list is constructed, and the current CU is merge / skip. In the mode, a corresponding fused motion information candidate is found from the fused motion information candidate list as motion information of the current CU according to a merge index in the code stream.
  • the motion vector prediction value is found from the motion vector prediction candidate list according to the motion vector prediction index in the code stream, and the motion vector difference value extracted from the code stream is used to obtain the motion vector.
  • the inter prediction image of the current block is obtained according to the motion information, and the inter prediction image and the residual image are added to obtain a reconstructed image of the current block. More specifically, the decoding end: perform motion compensation (motion compensation) according to the motion information to obtain Predict the image. If a residual exists in the current block, the residual information and the predicted image are added to obtain a reconstructed image of the current block; if the current block has no residual, the predicted image is a reconstructed image of the current block.
  • the above process is the prior art. For example, the same method as HEVC or VTM may be adopted, and other motion compensation and image reconstruction methods may also be adopted.
  • the beneficial effects of the present invention are: when the obtained airspace candidate is unavailable, it can be ensured that a new coding block corresponding to the newly available airspace candidate is obtained, and the same MER can include a complete coding unit, thereby performing a coding unit. In the process of constructing the candidate motion information list, as much candidate motion information as possible can be obtained to improve coding performance.
  • FIG. 13 is a flowchart illustrating an example operation of a video decoder (for example, the video decoder 30 of FIG. 3) according to an embodiment of the present application.
  • a video decoder for example, the video decoder 30 of FIG. 3
  • One or more structural elements of video decoder 30 may be used to perform the technique of FIG. 9. This embodiment includes:
  • the nodes that are further divided among the multiple nodes are parent nodes, and the nodes that are not further divided are leaf nodes.
  • the nodes are leaf nodes a, b, c, d, e, f, g, h, i, j, k, 1, m, n, o, and p that cannot be further divided.
  • the node may also be a node that needs to be further divided during the QT-MTT division of the CTU, that is, a parent node.
  • it may be a node corresponding to a and b, or a node corresponding to c and d.
  • the nodes corresponding to c, d, e, f, and g may be nodes corresponding to h, i, and j.
  • the first node may be the parent node or a leaf node.
  • An embodiment of the present invention provides the following additional manners for determining the area covered by the current MER according to the division depth N of the current node.
  • Method 4 Parse the coding tree partition information to obtain the first node. If the first node's partition depth N is equal to the second threshold T2 minus 1, and the first node's partition method is a tri-tree partition method, the first node is determined to be the current node. MER; if the division depth N of the first node is equal to the second threshold T2, and the division mode of the first node is binary tree division or quadtree division, the first node is determined to be the current MER.
  • the current coding unit is a coding unit in the current MER.
  • the Db of the MTT root node is equal to 0, and the Db of the child node is increased by 1 when the MTT node is divided by the binary tree division method. 1.
  • the Db of the child node is increased by 2.
  • the first node is determined to be the current MER.
  • the current MER contains only one CU.
  • Method 5 Parse the coding tree partition information to obtain the first node. If the partition depth N of the first node is equal to the third threshold T3 minus 1, and the partition method of the first node is a tri-tree partition or a quad-tree partition, then The first node is determined to be the current MER; if the partition depth N of the first node is equal to the third threshold T3, and the first node is partitioned into a binary tree, the first node is determined to be the current MER.
  • the current coding unit is a coding unit in the current MER.
  • the Db of the MTT root node is equal to 0, and the Db of the child node is increased by 1 when the MTT node is divided by the binary tree division method. 1.
  • the Db of the child node is increased by 2.
  • the first node is determined to be the current MER.
  • the current MER contains only one CU.
  • the positional relationship between the current coding block and the current MER information determines a second coding block that is close to the current MER airspace, wherein the MER information includes the coordinates of the MER; based on the second coding block Constructing an airspace motion information candidate list, where the second coding block is located outside the current MER;
  • step 1307 is the same as step 1205, please refer to step 1205 for details.
  • the airspace motion information candidate list After obtaining the airspace motion information candidate list, other candidates can also be added to the fusion motion information candidate list or motion vector prediction candidate list according to the existing related technologies. Other candidates include, but are not limited to, time domain candidates, zero motion information, etc. .
  • This process is prior art and can be performed with reference to the HEVC standard or VTM.
  • the candidate motion information list of the current coding block After the candidate motion information list of the current coding block is constructed, the motion information of the current CU is obtained. This step is a prior art, and the acquisition timing may be before the time domain motion information candidate list is constructed, and the current CU is merge / skip. In the mode, a corresponding fused motion information candidate is found from the fused motion information candidate list as motion information of the current CU according to a merge index in the code stream.
  • the motion vector prediction value is found from the motion vector prediction candidate list according to the motion vector prediction index in the code stream, and the motion vector difference value extracted from the code stream is used to obtain the motion vector.
  • the inter prediction image of the current block is obtained according to the motion information, and the inter prediction image and the residual image are added to obtain a reconstructed image of the current block. More specifically, the decoding end: perform motion compensation (motion compensation) according to the motion information to obtain Predict the image. If a residual exists in the current block, the residual information and the predicted image are added to obtain a reconstructed image of the current block; if the current block has no residual, the predicted image is a reconstructed image of the current block.
  • the above process is the prior art. For example, the same method as HEVC or VTM may be adopted, and other motion compensation and image reconstruction methods may also be adopted.
  • This step 1309 is the same as step 1207, please refer to step 1207 for details.
  • the decoding device 1400 includes:
  • a parsing module 1401, configured to obtain division information of a current coding block
  • a MER determination module 1403, configured to determine a current MER to which the current coding block belongs according to the division information
  • the spatial domain motion information candidate list construction module 1405 is configured to determine a first coding block, where the first coding block is a coding block corresponding to one spatial domain candidate of the current coding block, and determining the current coding block and the first coding block. Whether the block belongs to the same MER; and in a case where the current coding block and the first coding block belong to the same MER, based on the positional relationship between the first coding block and the current coding block, and information of the current MER To determine a second coding block adjacent to the current MER airspace, wherein the information of the MER includes the coordinates of the MER; and constructing a candidate list of spatial motion information based on the second coding block, the second coding block being located at Outside the current MER;
  • a reconstruction module 1407 is configured to predict and reconstruct the current coding unit according to the spatial domain motion information candidate list.
  • decoding device 1400 For the specific implementation of the decoding device 1400, reference may be made to the method described in FIG. 12, and details are not described herein again.
  • the information of the current MER further includes the width and height of the current MER, (xN, yN) indicates the coordinates of the first encoding block, and (xP, yP) indicates the current encoding block.
  • the airspace The motion information candidate list construction module is configured to: when xN-xP is less than zero, determine the coordinates corresponding to the second coding block as (xMER-1, yMER + M), where (xMER, yMER) indicates the The coordinates of the current MER, where M is an integer, M is greater than or equal to 1, and M is less than or equal to twice the height of the current MER; in a case where xN-xP is greater than or equal to zero and yN-yP is less than zero, determining the second encoding
  • the coordinates corresponding to the block are (xN, yN) indicates the coordinates of the first encoding block)
  • (xP, yP) indicates the current encoding block.
  • the information of the current MER further includes the width and height of the current MER, (xN, yN) indicates the coordinates of the first encoding block, and (xP, yP) indicates the current encoding block.
  • the airspace The motion information candidate list building module is configured to determine the coordinates corresponding to the second coding block as (xMER-1, yMER + M) when xN-xP is less than zero and yN-yP is greater than or equal to zero, where (( xMER, yMER) indicates the coordinates of the current MER, M is an integer, and M is greater than or equal to 1, and M is less than or equal to twice the height of the MER; and when yN-yP is less than zero, it is determined to be the same as the second
  • the coordinates corresponding to the coding block are
  • the information of the current MER further includes the width and height of the MER
  • the first coding block is one of a plurality of spatially adjacent blocks of the current coding block.
  • the airspace motion information candidate list construction module is configured to: : In a case where the first encoding block is adjacent to the lower left corner of the current encoding block, the coordinates corresponding to the second encoding block are (xMER-1, yMER + hMER); in the first encoding block In the case of being adjacent to the left side of the current encoding block, the coordinates corresponding to the second encoding block are (xMER-1, yMER + hMER-1); between the first encoding block and the current encoding When the upper right corners of the blocks are adjacent, the coordinates corresponding to the second encoding block are (xMER + wMER, yMER-1); when the first encoding block is adjacent to the top of the current encoding block , The coordinates corresponding to the second encoding block are (xMER + wMER-1, yMER-1); in the first encoding block When the upper left corner of the current coding block is adjacent, the coordinates corresponding to the second coding block are (xMER-1
  • (xN, yN) indicates the coordinates of the first encoding block
  • (xP, yP) indicates the coordinates of the current encoding block
  • (xMER, yMER) indicates the coordinates of the current MER
  • the airspace motion information The candidate list building module is used for: when xN-xP is an integer less than zero and yN-yP is greater than or equal to zero, the coordinates corresponding to the second coding block are (xMER-1, yN); and when xN-xP is greater than or equal to zero
  • the coordinates corresponding to the second coding block are (xN, yMER-1); when xN-xP and yN-yP are both integers less than zero, all
  • the parsing module is configured to obtain a quad-tree (QT) partition depth N of the current coding block and a multiple type tree (MTT) partition of the current coding block.
  • a depth M, the current coding block is one of a plurality of coding blocks obtained after the coding tree unit is divided M + N times;
  • the MER determination module is configured to: A threshold T1, where T1 is a preset non-zero positive integer, or when the multi-type partition depth M of the current coding unit is greater than 0, the partition depth obtained by partitioning the coding tree unit is K first
  • the MER determination module is further configured to: when the quad-tree partition depth N is less than or equal to a first threshold T1, or the multi-type partition depth M of the current coding unit is equal to 0, Then the current coding block is the current MER.
  • the parsing module is configured to obtain a partition depth N of the current coding block, where the partition depth N is a QT partition depth Dq of the current coding block and an MTT partition depth Dm of the current block.
  • the current coding block is one of a plurality of coding blocks obtained after the coding tree unit is divided N times, wherein a subunit obtained by each division of the coding tree unit is called a node, and the coding tree unit Itself is the root node of the node, the node is called a leaf node if it does not continue to divide, and the current coding block is one of a plurality of leaf nodes after the coding unit is divided N times;
  • the MER determination module is configured to: when the division depth N of the current coding block is greater than a first threshold T1, obtain the N-T1 layer parent node of the current coding block, and use the N-T1 layer parent node The area covered is the current MER, wherein the parent node is a node
  • the parsing module is configured to obtain a partition depth N of the current coding block, where the partition depth N is a QT partition depth Dq of the current coding block and an MTT partition depth Dm of the current block.
  • the current coding block is one of a plurality of coding blocks obtained after the coding tree unit is divided N times, wherein a subunit obtained by each division of the coding tree unit is called a node, and the coding tree unit Itself is the root node of the node, the node that is no longer divided is a leaf node, and the current coding block is one of a plurality of leaf nodes after the coding unit is divided N times;
  • the MER determination module is configured to: When the partition depth N of the current coding block is greater than a first threshold T1, the area covered by the node with the partition depth T1 in the coding tree unit is taken as the current MER, where T1 is a preset non-zero Positive integer.
  • a spatial domain motion information candidate list construction module is configured to determine whether the spatial domain neighboring block and the current coding block are located in the same MER, and if so, set the spatial domain neighboring block to be unavailable. Yes, if not, the airspace motion information candidate list is constructed based on the motion information of the airspace neighboring blocks.
  • Another embodiment of the present invention further provides a decoding device 1500 based on a motion estimation assessment region (MER). As shown in FIG. 15, the decoding device 1500 includes:
  • a parsing module 1501 configured to obtain division information of a coding tree unit
  • a division module 1503 configured to divide the coding tree unit to obtain multiple nodes according to the division information, among the multiple nodes, a node that is continuously divided is a parent node, and a node that is not further divided is a leaf node;
  • the MER determination module 1505 is configured to determine a first node whose division depth meets a preset condition, and use an area covered by the first node as the current MER of the first node.
  • the first node may be the parent node or Leaf node
  • the spatial domain motion information candidate list construction module 1507 is configured to determine a first coding block, where the first coding block is a coding block corresponding to one spatial domain candidate of the current coding block, and the current coding block is the first node or A leaf node obtained by further dividing the first node; determining whether the current encoding block and the first encoding block belong to the same MER; and in a case where the current encoding block and the first encoding block belong to the same MER Determining a second coding block that is close to the current MER airspace based on the positional relationship between the first coding block and the current coding block, and information of the current MER, wherein the information of the MER includes the Coordinates of the MER; constructing a spatial motion information candidate list based on the second coding block, the second coding block being located outside the current MER;
  • a reconstruction module 1509 is configured to predict and reconstruct the current coding block according to the spatial domain motion information candidate list.
  • decoding device 1500 For the specific implementation of the decoding device 1500, reference may be made to the method described in FIG. 13, and details are not described herein again.
  • the information of the current MER further includes the width and height of the current MER, (xN, yN) indicates the coordinates of the first encoding block, and (xP, yP) indicates the current encoding block.
  • the airspace The motion information candidate list construction module is configured to: when xN-xP is less than zero, determine the coordinates corresponding to the second coding block as (xMER-1, yMER + M), where (xMER, yMER) indicates the The coordinates of the current MER, where M is an integer, M is greater than or equal to 1, and M is less than or equal to twice the height of the current MER; in a case where xN-xP is greater than or equal to zero and yN-yP is less than zero, determining the second encoding
  • the coordinates corresponding to the block are (xN, yN) indicates the coordinates of the first encoding block)
  • (xP, yP) indicates the current encoding block.
  • the information of the current MER further includes the width and height of the current MER, (xN, yN) indicates the coordinates of the first encoding block, and (xP, yP) indicates the current encoding block.
  • the airspace The motion information candidate list building module is configured to determine the coordinates corresponding to the second coding block as (xMER-1, yMER + M) when xN-xP is less than zero and yN-yP is greater than or equal to zero, where (( xMER, yMER) indicates the coordinates of the current MER, M is an integer, and M is greater than or equal to 1, and M is less than or equal to twice the height of the MER; and when yN-yP is less than zero, it is determined to be the same as the second
  • the coordinates corresponding to the coding block are
  • the information of the current MER further includes the width and height of the MER
  • the first coding block is one of a plurality of spatially adjacent blocks of the current coding block.
  • the airspace motion information candidate list construction module is configured to: : In a case where the first encoding block is adjacent to the lower left corner of the current encoding block, the coordinates corresponding to the second encoding block are (xMER-1, yMER + hMER); in the first encoding block In the case of being adjacent to the left side of the current encoding block, the coordinates corresponding to the second encoding block are (xMER-1, yMER + hMER-1); between the first encoding block and the current encoding When the upper right corners of the blocks are adjacent, the coordinates corresponding to the second encoding block are (xMER + wMER, yMER-1); when the first encoding block is adjacent to the top of the current encoding block , The coordinates corresponding to the second encoding block are (xMER + wMER-1, yMER-1); in the first encoding block When the upper left corner of the current coding block is adjacent, the coordinates corresponding to the second coding block are (xMER-1
  • (xN, yN) indicates the coordinates of the first encoding block
  • (xP, yP) indicates the coordinates of the current encoding block
  • (xMER, yMER) indicates the coordinates of the current MER
  • the airspace motion information The candidate list building module is used for: when xN-xP is an integer less than zero and yN-yP is greater than or equal to zero, the coordinates corresponding to the second coding block are (xMER-1, yN); and when xN-xP is greater than or equal to zero
  • the coordinates corresponding to the second coding block are (xN, yMER-1); when xN-xP and yN-yP are both integers less than zero, all
  • the division depth includes independent quad-tree division depth (QUAD-Tree Depth, QT depth), and multi-type division depth (Multi-Type Tree, MTT Depth).
  • the MER determination module is configured to: It is determined that the first node whose QT depth is equal to the preset condition and the MTT depth is equal to 0, and the area covered by the first node is used as the MER of the first node.
  • the division depth is a sum of a quad-tree division depth (QUAD-Tree Depth, QT depth) and a multi-type division depth (Multi-Type Tree, MTT Depth), and the MER determination module is configured to: Determining a first node having a partition depth equal to the preset condition and further divided into a plurality of MTT leaf nodes, and using an area covered by the first node as a MER of the first node, wherein the current coding block is the One of multiple MTT leaf nodes.
  • QUAD-Tree Depth, QT depth quad-tree Depth, QT depth
  • MTT Depth multi-type division depth
  • the partition depth N Dq * 2 + Db, where Dq is the quadtree partition depth of the node, and Db is the multi-type partition depth of the node. If the node is MTT Root node, the Db of the node is equal to 0, if the node is a leaf node of MTT, and the node is obtained by binary tree division, the Db of the node is the Db of the root node of the node plus 1, if When a node is a leaf node of MTT, and the node is a middle node among the three nodes obtained by the tri-tree partition method, Db of the node is Db of the root node of the node plus 1, if the node is MTT When the leaf node is a non-intermediate node among the three nodes obtained by the tri-tree division method, the Db of the node is the Db of the root node of the node plus 2; the MER determination module is used to determine the division
  • the depth N is
  • the MER determination module is further configured to determine that the partition depth N is less than or equal to the second threshold T2 minus 1 and is the first node of the leaf node, and uses the area covered by the first node as The MER of the first node.
  • the partition depth N Dq * 2 + Db, where Dq is the quadtree partition depth of the node, and Db is the multi-type partition depth of the node. If the node is MTT Root node, the Db of the node is equal to 0, if the node is a leaf node of MTT, and the node is obtained by binary tree division, the Db of the node is the Db of the root node of the node plus 1, if When a node is a leaf node of MTT, and the node is a middle node among the three nodes obtained by the tri-tree partition method, Db of the node is Db of the root node of the node plus 1, if the node is MTT When the leaf node is a non-intermediate node among the three nodes obtained by the tri-tree division method, the Db of the node is the Db of the root node of the node plus 2; the MER determination module is used to determine the division
  • the depth N is
  • the MER determination module is configured to determine a first node whose division depth N is less than or equal to a third threshold T3 and is the leaf node, and use an area covered by the first node as the first node MER.
  • the airspace motion information candidate list construction module is configured to determine whether the airspace neighboring block and the current coding block are located in the same MER, and if so, set the airspace neighboring block as Not available, if not, the airspace motion information candidate list is constructed based on the motion information of the airspace neighboring blocks.
  • An embodiment of the present invention further provides a video decoder, which includes an execution circuit for performing any one of the foregoing methods.
  • An embodiment of the present invention further provides a video decoder, including: at least one processor; and a non-volatile computer-readable storage medium coupled to the at least one processor, the non-volatile computer-readable storage
  • the medium stores a computer program executable by the at least one processor, and when the computer program is executed by the at least one processor, causes the video decoder to perform any one of the methods described above.
  • An embodiment of the present invention further provides a computer-readable storage medium for storing a computer program executable by a processor, and when the computer program is executed by the at least one processor, performing any one of the foregoing methods. .
  • An embodiment of the present invention further provides a computer program, and when the computer program is executed, any one of the foregoing methods is performed.
  • a computer-readable medium may include a computer-readable storage medium, which corresponds to a tangible medium such as a data storage medium or a communication medium including any medium that facilitates transfer of a computer program from one place to another, according to a communication protocol, for example.
  • computer-readable media generally may correspond to (1) tangible computer-readable storage media that is non-transitory, or (2) a communication medium such as a signal or carrier wave.
  • a data storage medium may be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, codes, and / or data structures used to implement the techniques described in this disclosure.
  • the computer program product may include a computer-readable medium.
  • such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, disk storage or other magnetic storage devices, flash memory, or may be used to store instructions or data structures Any other media that requires program code and is accessible by the computer.
  • any connection is properly termed a computer-readable medium.
  • a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technology such as infrared, radio, and microwave is used to transmit instructions from a website, server, or other remote source
  • Coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of the medium.
  • the computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other temporary media, but are actually directed to non-transitory tangible storage media.
  • magnetic disks and compact discs include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), flexible discs and Blu-ray discs, where the discs are usually magnetic The data is reproduced, while the optical disk uses a laser to reproduce the data optically. Combinations of the above should also be included within the scope of computer-readable media.
  • processors such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits , ASIC), field programmable logic array (field programmable logic arrays, FPGA) or other equivalent integrated or discrete logic circuits.
  • DSPs digital signal processors
  • ASIC application specific integrated circuits
  • FPGA field programmable logic arrays
  • processors may refer to any of the above-described structures or any other structure suitable for implementing the techniques described herein.
  • the functionality described herein may be provided within dedicated hardware and / or software modules for encoding and decoding, or incorporated in a composite codec. Also, the techniques could be fully implemented in one or more circuits or logic elements.
  • the techniques of this disclosure may be implemented in a variety of devices or devices that include a wireless handset, an integrated circuit (IC), or a collection of ICs (eg, a chipset).
  • IC integrated circuit
  • the present disclosure describes various components, modules, or units to emphasize functional aspects of the device for performing the disclosed techniques, but does not necessarily need to be implemented by different hardware units.
  • the various units may be combined in a codec hardware unit in combination with suitable software and / or firmware, or provided by a collection of interoperable hardware units, which include as described above One or more processors.

Landscapes

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

Abstract

L'invention concerne un procédé de décodage fondé sur une région d'estimation de mouvement (MER). Le procédé consiste : à acquérir des informations de division d'un bloc de codage en cours; à déterminer, en fonction des informations de division, une MER en cours à laquelle appartient le bloc de codage en cours; à déterminer si le bloc de codage en cours et un premier bloc de codage correspondant à un candidat spatial sélectionné appartiennent à la même MER; à déterminer un second bloc de codage adjacent à un domaine spatial de la MER en cours; à construire une liste de candidats d'informations de mouvement dans le domaine spatial en fonction d'un bloc de codage adjacent à un domaine spatial du bloc de codage en cours, le bloc de codage adjacent au domaine spatial étant situé à l'extérieur de la MER en cours; et à prédire et à reconstruire le bloc de codage en cours en fonction de la liste de candidats d'informations de mouvement dans le domaine spatial. Selon le procédé de la présente invention, lorsqu'un candidat spatial sélectionné n'est pas disponible, un bloc de codage correspondant à un candidat spatial qui n'est pas situé dans une MER en cours est réobtenu, de telle sorte que le candidat spatial est finalement disponible pour construire une liste de candidats d'informations de mouvement dans le domaine spatial, et il est possible d'assurer que la même MER peut comprendre un bloc de codage complet, et ainsi, autant d'informations de mouvement candidates que possible peuvent être acquises pendant le processus de construction de la liste de candidats d'informations de mouvement dans le domaine spatial du bloc de codage, ce qui permet d'améliorer les performances de codage.
PCT/CN2019/107931 2018-09-27 2019-09-25 Procédé de décodage vidéo et décodeur vidéo WO2020063687A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811134191.5A CN110958452B (zh) 2018-09-27 2018-09-27 视频解码方法及视频解码器
CN201811134191.5 2018-09-27

Publications (1)

Publication Number Publication Date
WO2020063687A1 true WO2020063687A1 (fr) 2020-04-02

Family

ID=69952484

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/107931 WO2020063687A1 (fr) 2018-09-27 2019-09-25 Procédé de décodage vidéo et décodeur vidéo

Country Status (2)

Country Link
CN (1) CN110958452B (fr)
WO (1) WO2020063687A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113891089A (zh) * 2020-07-03 2022-01-04 杭州海康威视数字技术股份有限公司 一种运动信息候选列表的构建方法、装置及其设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102447894A (zh) * 2010-09-30 2012-05-09 华为技术有限公司 视频图像编码方法、解码方法和装置
CN104349170A (zh) * 2011-09-23 2015-02-11 株式会社Kt 对视频信号进行解码的方法
US20150055705A1 (en) * 2010-02-02 2015-02-26 Humax Holdings Co., Ltd. Image encoding/decoding apparatus and method
CN106034236A (zh) * 2015-03-19 2016-10-19 阿里巴巴集团控股有限公司 一种hevc编码最佳参考帧的选择方法、装置及编码器
CN107071457A (zh) * 2011-11-23 2017-08-18 数码士有限公司 视频解码方法
WO2017176092A1 (fr) * 2016-04-08 2017-10-12 한국전자통신연구원 Procédé et dispositif pour induire des informations de prédiction de mouvement

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3781075B2 (ja) * 1997-07-22 2006-05-31 Kddi株式会社 画像の動き推定領域分割方法及び装置
US9143795B2 (en) * 2011-04-11 2015-09-22 Texas Instruments Incorporated Parallel motion estimation in video coding
US9544592B2 (en) * 2012-02-10 2017-01-10 Texas Instruments Incorporated Methods and systems for encoding pictures associated with video data
KR20180041831A (ko) * 2016-10-17 2018-04-25 디지털인사이트 주식회사 블록 분할에 따른 skip 후보 리스트를 사용하는 비디오 코딩 방법 및 장치
US20180242024A1 (en) * 2017-02-21 2018-08-23 Mediatek Inc. Methods and Apparatuses of Candidate Set Determination for Quad-tree Plus Binary-tree Splitting Blocks
KR20180098158A (ko) * 2017-02-24 2018-09-03 주식회사 케이티 비디오 신호 처리 방법 및 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150055705A1 (en) * 2010-02-02 2015-02-26 Humax Holdings Co., Ltd. Image encoding/decoding apparatus and method
CN102447894A (zh) * 2010-09-30 2012-05-09 华为技术有限公司 视频图像编码方法、解码方法和装置
CN104349170A (zh) * 2011-09-23 2015-02-11 株式会社Kt 对视频信号进行解码的方法
CN107071457A (zh) * 2011-11-23 2017-08-18 数码士有限公司 视频解码方法
CN106034236A (zh) * 2015-03-19 2016-10-19 阿里巴巴集团控股有限公司 一种hevc编码最佳参考帧的选择方法、装置及编码器
WO2017176092A1 (fr) * 2016-04-08 2017-10-12 한국전자통신연구원 Procédé et dispositif pour induire des informations de prédiction de mouvement

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113891089A (zh) * 2020-07-03 2022-01-04 杭州海康威视数字技术股份有限公司 一种运动信息候选列表的构建方法、装置及其设备
CN113891089B (zh) * 2020-07-03 2022-12-23 杭州海康威视数字技术股份有限公司 一种运动信息候选列表的构建方法、装置及其设备

Also Published As

Publication number Publication date
CN110958452A (zh) 2020-04-03
CN110958452B (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
CN111107356B (zh) 图像预测方法及装置
CN112040229B (zh) 视频解码方法、视频解码器及计算机可读存储介质
WO2020088324A1 (fr) Procédé et appareil de prédiction d'images vidéo
CN110891180B (zh) 视频解码方法及视频解码器
CN110868589A (zh) 帧间预测方法、装置及其应用的编/解方法及装置
CN110855998B (zh) 融合候选者列表构建方法、装置及的编/解方法及装置
US20230370597A1 (en) Picture partitioning method and apparatus
CN110944184B (zh) 视频解码方法及视频解码器
WO2020063687A1 (fr) Procédé de décodage vidéo et décodeur vidéo
WO2020181476A1 (fr) Procédé et dispositif de prédiction d'image vidéo
CN111010565A (zh) 帧间预测方法、装置及其应用的编/解方法及装置
WO2020048361A1 (fr) Procédé de décodage vidéo et décodeur vidéo
WO2020038357A1 (fr) Procédé de construction de liste de candidats à une fusion, dispositif, et procédé et dispositif de codage/décodage
WO2020042990A1 (fr) Procédé et dispositif de prédiction inter-trame, et procédé et dispositif de codage/décodage pour leur application
WO2020043136A1 (fr) Procédé et dispositif de partition d'image

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

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

Country of ref document: EP

Kind code of ref document: A1