WO2018068762A1 - Partitionnement de blocs à l'aide de structures arborescentes - Google Patents

Partitionnement de blocs à l'aide de structures arborescentes Download PDF

Info

Publication number
WO2018068762A1
WO2018068762A1 PCT/CN2017/106073 CN2017106073W WO2018068762A1 WO 2018068762 A1 WO2018068762 A1 WO 2018068762A1 CN 2017106073 W CN2017106073 W CN 2017106073W WO 2018068762 A1 WO2018068762 A1 WO 2018068762A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
partitions
partition
units
partitioning
Prior art date
Application number
PCT/CN2017/106073
Other languages
English (en)
Inventor
Chia-Ming Tsai
Chih-Wei Hsu
Tzu-Der Chuang
Ching-Yeh Chen
Yu-Wen Huang
Original Assignee
Mediatek Inc.
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 Mediatek Inc. filed Critical Mediatek Inc.
Priority to CN201780063090.0A priority Critical patent/CN109845268A/zh
Priority to EP17859515.3A priority patent/EP3523979A4/fr
Publication of WO2018068762A1 publication Critical patent/WO2018068762A1/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/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/66Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving data partitioning, i.e. separation of data into packets or partitions according to importance
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/647Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
    • 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 techniques described herein relate generally to image or video coding, and particularly to block partitioning using tree structures.
  • Video coding involves compressing (and decompressing) a digital video signal.
  • video coding standards include the H. 264 video compression standard, and its successor High Efficiency Video Coding (HEVC) .
  • HEVC is a project of the ITU-T Video Coding Experts Group (VCEG) and the ISO/IEC Moving Picture Experts Group (MPEG) standard organizations, working together in a partnership known as the Joint Collaborative Team on Video Coding (JCT-VC) .
  • Moving video is formed by taking snapshots of the signal at periodic time intervals, such that playing back the series of snapshots, or frames, produces the appearance of motion.
  • Video encoders include a prediction model that attempts to reduce redundancy using similarities between neighboring video frames.
  • a predicted frame is created from one or more past or future frames that are often referred to as reference frames. Frames that do not serve as reference frames are often referred to as non-reference frames.
  • each frame of a video sequence can include thousands or millions of pixels, video coding techniques typically partition frames into slices.
  • Each slice can be partitioned into multiple coding tree units (CTUs) .
  • CTUs coding tree units
  • SPS sequence parameter set
  • the CTU is the basic unit of coding in HEVC, similar to a macroblock in other standards.
  • the CTU can be further partitioned into multiple coding units (CUs) to adapt to various local characteristics.
  • the decision whether to code a picture area using Inter-picture (temporal) or Intra-picture (spatial) prediction is made at the CU level. Since the minimum CU size can be 8 x 8 pixels, the minimum granularity for switching different basic prediction types is 8 x 8 pixels.
  • Each CU is transformed using one or more transform units (TUs) , each of which is predicted using Intra or Inter prediction.
  • CTU convex ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • apparatus, systems, and methods are provided for decoder-side motion vector restoration techniques that improve the execution speed and efficiency of decoder-side motion vector refinement techniques.
  • Some embodiments relate to an image or video encoding method.
  • the method includes partitioning a slice of an image or video sequence into a set of first units. For each first unit in the set of first units, the first unit is partitioned into a set of second units. Partitioning includes, for each second unit in the set of second units, determining whether the second unit satisfies a predetermined constraint. If the second unit does not satisfy the predetermined constraint, a first set of partitioning techniques is tested to partition the second unit. If the second unit satisfies the predetermined constraint, the first set of partitioning techniques and a second set of partitioning techniques are tested to partition the second unit. The second unit is partitioned using a technique from the first set of partitioning techniques or the second set of partitioning techniques identified by the testing.
  • the first unit is a coding tree unit
  • the second unit is a coding unit or a prediction unit.
  • the first set of partitioning techniques includes a quad-tree partitioning technique that partitions the second unit using a quad-tree, a binary tree partitioning technique that partitions the second unit using a binary tree, a no partitioning technique that no further partitions in the second unit, or some combination thereof
  • the second set of partitioning techniques includes an asymmetric coding unit partitioning technique that asymmetrically partitions the second unit, a triple-tree partitioning technique that partitions the second unit using a triple tree, or some combination thereof.
  • the constraint comprises one or more of a coding unit size of the second unit, a tree split depth of the second unit, whether the second unit is a leaf node of a split tree, whether the coding unit width of the second unit is a power of two, whether the coding unit height of the second unit is a power of two, or any combination thereof.
  • the constraint is implicitly indicated, explicitly indicated, or both.
  • the method includes explicitly indicating the constraint in a video bitstream, wherein the constraint is signaled in a video parameter set (VPS) , a sequence parameter set (SPS) , a picture parameter set (PPS) , a slice header, a coding unit, or any combination thereof.
  • VPS video parameter set
  • SPS sequence parameter set
  • PPS picture parameter set
  • slice header a slice header
  • coding unit a coding unit
  • the constraint comprises a minimum length and a maximum length of a width of the second unit, a height of the second unit, a minimum and a maximum tree split depths, or any combination thereof.
  • Some embodiments relate to an image or video encoding method.
  • a slice of an image or video stream is partitioned into a set of first units.
  • the first unit is partitioned into a set of second units.
  • Partitioning includes, for each second unit in the set of second units, determining whether the second unit satisfies a predetermined constraint. If the second unit satisfies the predetermined constraint, a first set of partitions are tested to partition the second unit, each partition from the set of partitions including a same partition direction.
  • a second set of partitions is tested to partition the second unit, the partitions in the second set of partitions including the first set of partitions and additional partitions with a different direction than the first set of partitions.
  • the second unit is partitioned using a partition from the first set of partitions or the second set of partitions identified by the testing.
  • the constraint includes one or more of a minimum length and a maximum length of a width of the second unit, a height of the second unit, or both, whether the height of the second unit, the width of the second unit, or both, are a power of two, or any combination thereof.
  • the method includes explicitly indicating the constraint in a video bitstream, wherein the constraint is signaled in a video parameter set (VPS) , a sequence parameter set (SPS) , a picture parameter set (PPS) , a slice header, a coding unit, or any combination thereof.
  • VPS video parameter set
  • SPS sequence parameter set
  • PPS picture parameter set
  • slice header a slice header
  • coding unit a coding unit
  • the constraint includes a minimum length and a maximum length of a width of the second unit, a height of the second unit, or both.
  • a partitioning technique associated with the set of partitions is signaled.
  • Some embodiments relate to an image or video encoding method.
  • the method includes partitioning a slice of an image or video stream into a set of first units. For each first unit in the set of first units, the first unit is partitioned into a set of second units. Partitioning the first unit includes, for each second unit in the set of second units, determining the second unit satisfies a predetermined constraint. A set of partitions is tested to partition the second unit, each partition from the set of partitions comprising a set of sub-units comprising a width meeting a second constraint, a height meeting the second constraint, or both. The second unit is partitioned using a partition from the set of partitions identified by the testing.
  • the constraint comprises a width of the second unit not being a power of two, a height of the second unit not being a power of two, or both.
  • the second constraint comprises the length being a power of two.
  • the second constraint is implicitly determined based on a coding mode.
  • the coding mode comprises an intra coding mode or an inter coding mode.
  • the second constraint is explicitly indicated in a signal.
  • the method further includes explicitly indicating the signal by a video parameter set (VPS) , a sequence parameter set (SPS) , a picture parameter set (PPS) , a slice header, a coding unit, or any combination thereof.
  • VPS video parameter set
  • SPS sequence parameter set
  • PPS picture parameter set
  • slice header a slice header
  • coding unit a coding unit
  • the constraint includes each side of the second unit is not a power of two, a series of values to split the side into many segments in power of two, or both.
  • the first unit is a coding tree unit
  • the second unit is a coding unit or a prediction unit.
  • Some embodiments relate to an apparatus configured to encode image or video data.
  • the apparatus includes a processor in communication with memory.
  • the processor is configured to execute instructions stored in the memory that cause the processor to partition a slice of an image or video sequence into a set of first units. For each first unit in the set of first units, the processor partitions the first unit into a set of second units. Partitioning includes, for each second unit in the set of second units determining whether the second unit satisfies a predetermined constraint. If the second unit does not satisfy the predetermined constraint, the processor tests a first set of partitioning techniques to partition the second unit. If the second unit satisfies the predetermined constraint, the processor tests the first set of partitioning techniques and a second set of partitioning techniques to partition the second unit. The processor partitions the second unit using a technique from the first set of partitioning techniques or the second set of partitioning techniques identified by the testing.
  • Some embodiments relate to an apparatus configured to encode image or video data.
  • the apparatus includes a processor in communication with memory.
  • the processor is configured to execute instructions stored in the memory that cause the processor to partition a slice of an image or video stream into a set of first units. For each first unit in the set of first units, the processor partitions the first unit into a set of second units, including, for each second unit in the set of second units, determining whether the second unit satisfies a predetermined constraint. If the second unit satisfies the predetermined constraint, the processor tests a first set of partitions to partition the second unit, each partition from the set of partitions comprising a same partition direction.
  • the processor tests a second set of partitions to partition the second unit, the partitions in the second set of partitions including the first set of partitions and additional partitions with a different direction than the first set of partitions.
  • the processor partitions the second unit using a partition from the first set of partitions or the second set of partitions identified by the testing.
  • the apparatus includes a processor in communication with memory.
  • the processor is configured to execute instructions stored in the memory that cause the processor to partition a slice of an image or video stream into a set of first units. For each first unit in the set of first units, the processor partitions the first unit into a set of second units, including, for each second unit in the set of second units, determining the second unit satisfies a predetermined constraint.
  • the processor tests a set of partitions to partition the second unit, each partition from the set of partitions comprising a set of sub-units comprising a width meeting a second constraint, a height meeting the second constraint, or both.
  • the processor partitions the second unit using a partition from the set of partitions identified by the testing.
  • Some embodiments relate to an image or video decoding method.
  • the method includes receiving a bitstream, wherein the bitstream was encoded by: partitioning a slice of an image or video sequence into a set of first units; for each first unit in the set of first units, partitioning the first unit into a set of second units, comprising, for each second unit in the set of second units: determining whether the second unit satisfies a predetermined constraint; if the second unit does not satisfy the predetermined constraint, testing a first set of partitioning techniques to partition the second unit; and if the second unit satisfies the predetermined constraint, testing the first set of partitioning techniques and a second set of partitioning techniques to partition the second unit; and partitioning the second unit using a technique from the first set of partitioning techniques or the second set of partitioning techniques identified by the testing.
  • the method includes decoding the received bitstream.
  • the constraint is explicitly indicated in the bitstream, wherein the constraint is signaled in a video parameter set (VPS) , a sequence parameter set (SPS) , a picture parameter set (PPS) , a slice header, a coding unit, or any combination thereof.
  • VPS video parameter set
  • SPS sequence parameter set
  • PPS picture parameter set
  • slice header a slice header
  • coding unit a coding unit
  • Some embodiments relate to an image or video decoding method.
  • the method includes receiving a bitstream, wherein the bitstream was encoded by: partitioning a slice of an image or video stream into a set of first units; for each first unit in the set of first units, partitioning the first unit into a set of second units, comprising, for each second unit in the set of second units: determining whether the second unit satisfies a predetermined constraint; if the second unit satisfies the predetermined constraint, testing a first set of partitions to partition the second unit, each partition from the set of partitions comprising a same partition direction; if the second unit does not satisfy the predetermined constraint, testing a second set of partitions to partition the second unit, the partitions in the second set of partitions including the first set of partitions and additional partitions with a different direction than the first set of partitions; and partitioning the second unit using a partition from the first set of partitions or the second set of partitions identified by the testing.
  • the method includes decoding the
  • the constraint is explicitly indicated in the bitstream, wherein the constraint is signaled in a video parameter set (VPS) , a sequence parameter set (SPS) , a picture parameter set (PPS) , a slice header, a coding unit, or any combination thereof.
  • VPS video parameter set
  • SPS sequence parameter set
  • PPS picture parameter set
  • slice header a slice header
  • coding unit a coding unit
  • Some embodiments relate to an image or video decoding method.
  • the method includes receiving a bitstream, wherein the bitstream was encoded by: partitioning a slice of an image or video stream into a set of first units; for each first unit in the set of first units, partitioning the first unit into a set of second units, comprising, for each second unit in the set of second units: determining the second unit satisfies a predetermined constraint; testing a set of partitions to partition the second unit, each partition from the set of partitions comprising a set of sub-units comprising a width meeting a second constraint, a height meeting the second constraint, or both; and partitioning the second unit using a partition from the set of partitions identified by the testing.
  • the method includes decoding the received bitstream.
  • the second constraint is explicitly indicated in the signal by a video parameter set (VPS) , a sequence parameter set (SPS) , a picture parameter set (PPS) , a slice header, a coding unit, or any combination thereof.
  • VPS video parameter set
  • SPS sequence parameter set
  • PPS picture parameter set
  • slice header a slice header
  • coding unit a coding unit
  • Some embodiments relate to an apparatus configured to decode image or video data.
  • the apparatus includes a processor in communication with memory.
  • the processor is configured to execute instructions stored in the memory that cause the processor to receive a bitstream, wherein the bitstream was encoded by: partitioning a slice of an image or video sequence into a set of first units; for each first unit in the set of first units, partitioning the first unit into a set of second units, comprising, for each second unit in the set of second units: determining whether the second unit satisfies a predetermined constraint; if the second unit does not satisfy the predetermined constraint, testing a first set of partitioning techniques to partition the second unit; if the second unit satisfies the predetermined constraint, testing the first set of partitioning techniques and a second set of partitioning techniques to partition the second unit; and partitioning the second unit using a technique from the first set of partitioning techniques or the second set of partitioning techniques identified by the testing.
  • the instructions cause the processor to decode the received bitstream.
  • Some embodiments relate to an apparatus configured to decode image or video data.
  • the apparatus includes a processor in communication with memory.
  • the processor is configured to execute instructions stored in the memory that cause the processor to receive a bitstream, wherein the bitstream was encoded by: partitioning a slice of an image or video stream into a set of first units; for each first unit in the set of first units, partitioning the first unit into a set of second units, comprising, for each second unit in the set of second units: determining whether the second unit satisfies a predetermined constraint; if the second unit satisfies the predetermined constraint, testing a first set of partitions to partition the second unit, each partition from the set of partitions comprising a same partition direction; if the second unit does not satisfy the predetermined constraint, testing a second set of partitions to partition the second unit, the partitions in the second set of partitions including the first set of partitions and additional partitions with a different direction than the first set of partitions; and partitioning the second unit using
  • Some embodiments relate to an apparatus configured to decode image or video data.
  • the apparatus includes a processor in communication with memory.
  • the processor is configured to execute instructions stored in the memory that cause the processor to receive a bitstream, wherein the bitstream was encoded by: partitioning a slice of an image or video stream into a set of first units; for each first unit in the set of first units, partitioning the first unit into a set of second units, comprising, for each second unit in the set of second units: determining the second unit satisfies a predetermined constraint; testing a set of partitions to partition the second unit, each partition from the set of partitions comprising a set of sub-units comprising a width meeting a second constraint, a height meeting the second constraint, or both; and partitioning the second unit using a partition from the set of partitions identified by the testing.
  • the instructions cause the processor to decode the received bitstream.
  • FIG. 1 shows an exemplary video coding configuration, according to some embodiments.
  • FIG. 2 shows an exemplary subdivision of a coding tree unit (CTU) into coding units (CUs) and transform units (TUs) , and an associated quad tree.
  • CTU coding tree unit
  • FIG. 3 shows an exemplary Quad-Tree-Binary-Tree (QTBT) partitioning of a coding tree unit (CTU) and a resulting QTBT tree structure.
  • QTBT Quad-Tree-Binary-Tree
  • FIG. 4 illustrates quad tree (QT) , binary tree (BT) , and triple-tree (TT) partitions.
  • FIG. 5 shows four asymmetric partitions.
  • FIG. 6 shows an exemplary process for constraining CTU partitioning for image or video encoding, according to some embodiments.
  • FIG. 7 illustrates an example of a tree with coding units (CUs) at leaf nodes, used to test for asymmetric and/or triple-tree (TT) partitioning, according to some embodiments.
  • CUs coding units
  • TT triple-tree
  • FIG. 8 shows an exemplary method for only testing certain directions during partitioning, according to some embodiments.
  • FIG. 9 shows an example of only testing a horizontal split, according to some embodiments.
  • FIG. 10 shows an example of testing based on whether a side is a power of two, according to some embodiments.
  • FIG. 11 shows an example of early termination based on whether a side is a power of two, according to some embodiments.
  • FIG. 12 illustrates an exemplary method for partitioning a coding unit (CU) when the height or width of the CU is not a power of two, according to some embodiments.
  • FIG. 13 shows examples of implicitly indicating the transform unit (TU) partition, according to some embodiments.
  • FIG. 14 shows examples of implicitly indicating the transform unit (TU) partition, according to some embodiments.
  • FIG. 15 shows examples of implicitly indicating the transform unit (TU) partition according to coding mode, according to some embodiments.
  • CTU partitioning can be used to improve the execution of CTU partitioning.
  • partitioning techniques e.g., no partition, quad tree (QT) , binary tree (BT) , triple-tree (TT) , and asymmetric partitions
  • QT quad tree
  • BT binary tree
  • TT triple-tree
  • asymmetric partitions can create coding efficiencies, it may not be the best approach and also complicate the video codec design.
  • testing too many different partitioning types can consume significant computational time.
  • a large number of transform types may need to be supported, such as for units (e.g., coding units) with either a width or height that is not a power of two.
  • the inventors have therefore developed techniques to limit the usage of CU partitioning techniques, such as limiting the use of TT and asymmetric partitioning (e.g., in addition to QT, BT, and no partitioning) .
  • the inventors have also developed techniques to divide a unit (e.g., a coding unit) with a width or height that is not a power of two into a number of sub-units (e.g., sub-transform units) that each has a width and height that is a power of two. Limiting the use of too many partitioning techniques can not only save computational resources but also save signaling overhead. Further, the inventors have developed techniques to implicitly determine the partition for a block based on the block height, the block width, and/or the coding mode.
  • FIG. 1 shows an exemplary video coding configuration 100, according to some embodiments.
  • Video source 102 is an image and/or video source, and can be, for example, digital television, internet-based video, video calling, and/or the like.
  • Encoder 104 encodes the video from the video source 102 into encoded video.
  • the encoder 104 can reside on the same device that generated the video source 102 (e.g., a cell phone, for video calling) , and/or may reside on a different device.
  • the receiving device 106 receives encoded video from the encoder 104.
  • the receiving device 104 may receive the video as a video product (e.g., a digital video disc, or other computer readable media) , through a broadcast network, through a mobile network (e.g., a cellular network) , and/or through the Internet.
  • the receiving device 106 can be, for example, a computer, a cell phone, or a television.
  • the receiving device 106 includes a decoder 108 that is configured to decode the encoded video.
  • the receiving device 106 also includes a display 110 for displaying the decoded video.
  • part of the encoding process may include partitioning a CTU into multiple CUs.
  • the encoder e.g., encoder 104 uses a tree to partition the CTU into multiple CUs, such as a coding tree.
  • HEVC uses an adaptive CU partition.
  • the CTU is sized M x M pixels, where M is one of 16, 32 or 64 pixels.
  • the CTU may be a single CU, or the CTU may be split into smaller units of equal sizes of M/2 x M/2, which are the nodes of the resulting coding tree. If units are leaf nodes of the coding tree, the units become CUs. Otherwise, the quadtree splitting process can be iterated until the size of a node reaches a minimum allowed CU size (e.g., specified in the SPS) . This results in a recursive structure specified by a coding tree.
  • a minimum allowed CU size e.g., specified in the SPS
  • FIG. 2 shows an exemplary subdivision of a CTU 200 using a quad tree (QT) into CUs and transform units (TUs) , and an associated quad tree 250.
  • the solid lines indicate CU boundaries, and the dotted lines indicate TUs.
  • the CTU 200 is divided into four CUs 202, 204, 206 and 208.
  • CU 202 is further divided into four sub-CUs, and the lower-left sub-CU is further divided into four TUs shown with the dotted lines.
  • CU 202 corresponds to portion 252 of the quad tree 250.
  • CU 204 is divided into four TUs, and the upper-right TU is divided into four sub-TUs.
  • CU 204 corresponds to portion 254 of the quad tree 250.
  • CU 206 is not divided, and corresponds to portion 256 of the quad tree 250.
  • CU 208 is divided into four CUs, and the upper-right CU is divided into four sub-CUs and the lower-right CU is divided into four TUs.
  • CU 208 corresponds to portion 258 of the quad tree 250. Therefore, as shown in FIG. 2, quad tree partitioning is used to partition not only the CTU but also recursively on other partitions (or nodes) in the quad tree.
  • One or more prediction units PUs are specified for each CU. Coupled with the CU, the PU works as a basic representative block for sharing the prediction information. Inside one PU, the same prediction process is applied and the relevant information is transmitted to the decoder on a PU basis.
  • a CU can include, or be split into, one, two or four PUs according to the PU splitting type.
  • HEVC defines different splitting types for splitting a CU into a PU.
  • Quad-Tree-Binary-Tree can be used, which can have a better coding performance compared to QT structure.
  • the QTBT is described in, for example, J. An et al., “Block partitioning structure for next generation video coding, ” MPEG doc. m37524 and ITU-T SG16 Doc. COM16-C966, Oct. 2015, which is hereby incorporated by reference herein in its entirety.
  • FIG. 3 shows an exemplary QTBT partitioning of CTU 300 and resulting QTBT tree structure 350. For a QTBT, the CTU 300 is first partitioned by a QT.
  • CTU 300 is partitioned using QT into the four leaf nodes 302, 304, 306 and 308.
  • CU 306 is further partitioned by a QT into four leaf nodes.
  • the QT leaf nodes are then partitioned by a binary-tree (BT) structure.
  • Leaf node 302 is partitioned twice –once vertically, and the left portion is further partitioned vertically.
  • Leaf node 302 corresponds to portion 352 in the QTBT 350.
  • Leaf node 304 is partitioned once horizontally, and corresponds to portion 354 in the QTBT 350.
  • leaf node 306 Two of the four leaf nodes in 306 are partitioned using a BT –the upper-left is partitioned twice (once vertically and then the right partition is further portioned once horizontally) , and the lower-right is partitioned once horizontally.
  • Leaf node 306 corresponds to portion 356 in the QTBT 350.
  • Leaf node 308 is not partitioned, and corresponds to portion 358 in the QTBT 350.
  • binary-tree leaf nodes are denoted as CUs, which are used for prediction and transform without any further partitioning.
  • FIG. 4 illustrates QT partition (a) , vertical BT partition (b) , horizontal BT partition (c) , vertical center-side TT partition (d) , and horizontal center-side TT partition (e) .
  • the CTU is first partitioned by a quad-tree (e.g., partition (a)) .
  • the quad-tree leaf nodes are further partitioned by a sub-tree that contains both BT and TT partitions (e.g., partitions (b) through (e) in FIG. 4) .
  • the sub-tree leaf nodes are denoted as CUs, which are used for prediction and transform without any further processing.
  • FIG. 5 shows four asymmetric partitions (a) - (d) . Assuming a length and width of M, partition (a) partitions the unit vertically at M/4 from the left, partition (b) partitions the unit vertically at M/4 from the right, partition (c) partitions the unit horizontally at M/4 from the top, and partition (d) partitions the unit horizontally at M/4 from the bottom.
  • partition (a) partitions the unit vertically at M/4 from the left
  • partition (b) partitions the unit vertically at M/4 from the right
  • partition (c) partitions the unit horizontally at M/4 from the top
  • partition (d) partitions the unit horizontally at M/4 from the bottom partitions the unit horizontally at M/4 from the bottom.
  • the BT leaf nodes the CUs
  • the asymmetric partitions can be tested on the BT CUs to further develop the tree structure.
  • partitions can be used to partition CTUs and CUs, including QT, BT, TT and asymmetric partitions.
  • the TT and asymmetric partitions were proposed in addition to QT and BT. See, for example, F. Le Leannec, “Asymmetric Coding Unit in QTBT, ” JVET-D0064, Oct. 2016, which describes asymmetric partitioning, and X. Li, “Multi-Type-Tree, ” JVET-D0117, Oct. 2016, which describes TT partitioning, the contents of which are hereby incorporated by reference herein in their entirety.
  • TT and asymmetric partitioning can further improve the coding efficiency compared to just QT and BT, there can also be issues using these various techniques. For example, when checking a particular unit (e.g., a coding unit) for the best partition type, checking too many partitioning techniques can increase the computational time to generate the coding structure.
  • the coding technique may need to support many different transform types in order to handle a non-power of two dimension in the unit being partitioned.
  • the size of the TU is equal to the size of the CU (e.g., such that one CU should be one TU, and the CU is not further partitioned into more than one TU) . If the technique leverages five different CU sizes, then the technique uses five different TUs. Therefore, as the number of CU sizes grows, more transform units are required.
  • Using different partition techniques generates further CU sizes, and therefore requires more TUs.
  • the transform process is performed by applying a one-dimensional (1-D) transform twice.
  • one TU is processed by a 1-D horizontal transform first, followed by a 1-D vertical transform.
  • the sizes in one direction of all possible CUs may always be a power of two.
  • the technique can reuse these 1-D transforms for different CUs.
  • the technique can reuse a 1-D horizontal transform for those CU with size equal to 16xN (where N is integer) .
  • asymmetric partitions generate more CUs with sizes that are not a power of two, e.g. 12x16, or 32x24.
  • Such a coding technique, using asymmetric partitions therefore needs to create the corresponding transform to meet the constraint that one CU is equal to one TU in the original design of QT+BT.
  • FIG. 6 shows an exemplary process 600 for constraining CTU partitioning for image or video encoding, according to some embodiments.
  • the encoder receives a slice of an image or of a video that is partitioned into a set of first units (e.g., CTUs) .
  • the encoder partitions each unit in the set of first units into a set of second units (e.g., CUs) .
  • the encoder selects a set of units from the set of second units.
  • the encoder executes steps 610-616 to partition the selected unit.
  • the encoder determines whether the selected unit meets a predetermined constraint.
  • the encoder tests a first set of partitioning techniques to partition the second unit. If the unit satisfies the predetermined constraint, at step 614 the encoder tests the first set of partitioning techniques and a second set of partitioning techniques to partition the unit. Steps 612 and 614 identify a resulting technique (or no technique at all if the second unit is not to be partitioned further) . At step 616, the encoder partitions the second unit using the identified technique from the first set of partitioning techniques or the second set of partitioning techniques. The method 600 proceeds back to step 608 to test each unit in the selected set of units. While not shown in FIG.
  • the method 600 also tests the remaining sets of units in the second set of units using steps 608-616. Further, while not shown in method 600, the method can be run on the partitions generated at step 616 in an iterative fashion (e.g., to further partition the partitions made at step 616) .
  • the set of units can be CTUs, and the set of second units can be nodes in a tree.
  • the set of second units for each CTU can be a set of CUs, TUs, or other nodes within a tree.
  • the constraint can be one or more of a coding unit size of the unit, a tree split depth of the unit, whether the unit is a leaf node of a split tree; whether the coding unit width of the second unit is a power of two; whether the coding unit height of the second unit is a power of two, and/or the like.
  • the constraint (s) can be implicitly indicated, explicitly indicated, or both. For a first illustrative example, an implicit indication is based on the CU size.
  • the technique can allow TT and asymmetric partitions (e.g., the second set of partitioning techniques includes TT and asymmetric partitioning) if the current CU size is larger than 16x16. Otherwise, if the current CU size is not larger than 16x16, only BT is used (e.g., the first set of partitioning techniques is BT) .
  • an implicit indication is based on the QT node. For example, if the current CU is partitioned by QT, then the technique allows TT (e.g., the second set of partitioning techniques is TT) .
  • the CU size constraint can be explicitly signaled by the slice header. For example, if current CU size is larger than the signaled threshold, then the technique allows TT and asymmetric partitioning (e.g., the second set of partitioning techniques includes TT and asymmetric partitioning) . Otherwise, if the current CU size is not larger than the signaled threshold, only BT can be used (e.g., the first set of partitioning techniques is BT) .
  • the first set of partitioning techniques can be, for example, QT and/or BT.
  • the second set of partitioning techniques can be TT and/or asymmetric partitioning.
  • step 612 only tests QT and/or BT
  • step 614 tests (a) QT and/or BT and (b) TT and/or asymmetric partitioning. Therefore, a video coding system can use various prediction modes to encode one CU, where one prediction mode essentially defines one rule to generate the predictors.
  • a cost function is defined to jointly consider the coding bits and the distortion value when using a particular mode decision, and then the mode decision process tests all prediction modes to select the prediction mode with the smallest cost.
  • the video coding system can perform the mode decision process to find the best prediction mode (s) for the CUs in this partition method and calculate the total costs of these best prediction mode (s) .
  • the partition method (s) with the smallest total cost is selected as the best partition method (s) among the different partition methods.
  • the constraint technique discussed in conjunction with FIG. 6 can improve the flexible coding unit partition for higher coding efficiency and/or less encoder complexity.
  • the second set of partitioning techniques e.g., TT partition and/or asymmetric partition
  • the first set of partitioning techniques for the CUs when the CU size is between the minimal and maximum allowed CU sizes. For example, let the maximum allowed CU size be denoted as M, the minimal allowed CU size be denoted as m, and the current CU size be denoted by s. If m ⁇ s ⁇ M, then second set of partitioning techniques are jointly tested for the current CU. Otherwise, for example, only the BT partition is tested in addition to the QT partition.
  • the second set of partitioning techniques are jointly tested with the first set of partitioning techniques for the CUs when the corresponding binary tree depth is between the minimal and maximum allowed tree depths. For example, let the maximum allowed tree depth be denoted as D, the minimal allowed tree depth be denoted as d, and the current CU depth be t. If d ⁇ t ⁇ D, then the second set of partitioning techniques are jointly tested for the current CU. Otherwise, for example, only the BT partition is tested in addition to QT.
  • the constraints can be different for different techniques (e.g., for TT and asymmetric partition) .
  • the depth constraint for TT could be 0 ⁇ t ⁇ 2
  • the depth constrain for asymmetric partition could be 0 ⁇ t ⁇ 3.
  • the second set of partitioning techniques are jointly tested for the CUs when the CU location is at the leaf node of binary tree. Otherwise, for example, only BT partitioning is tested in conjunction with QT.
  • FIG. 7 illustrates an example of a tree 700 with CUs at leaf nodes 702A, 702B, and so on (collectively referred to as leaf nodes 702) , to test for the second set of partitioning techniques, according to some embodiments.
  • leaf nodes 702 At each leaf node 702 the encoder jointly tests the second set of partitioning techniques.
  • the second set of partitioning techniques are jointly tested with the first set of partitioning techniques for the CUs when the CU size of using the first set of partitioning techniques is between the minimal and maximum allowed CU sizes; meanwhile, the corresponding binary tree depth is between the minimal and maximum allowed tree depths.
  • M the maximum allowed CU size
  • m the minimal allowed CU size
  • D the maximum allowed tree depth
  • d the minimal allowed tree depth
  • d the minimal allowed tree depth
  • the CU size of using the first set of partitioning techniques is s and the current CU depth be t. If m ⁇ s ⁇ M and d ⁇ t ⁇ D, then the second set of partitioning techniques are jointly tested for the current CU. Otherwise, only the first set of partitioning techniques is tested.
  • FIG. 8 shows an exemplary method 800 for only testing certain directions during partitioning, according to some embodiments.
  • the encoder receives a slice of an image or of a video that is partitioned into a set of first units (e.g., CTUs) .
  • the encoder partitions each unit in the set of first units into a set of second units.
  • the encoder selects a set of units from the set of second units.
  • the encoder selects a unit from the selected set of units.
  • the encoder executes steps 810-816 to partition the selected unit.
  • the encoder determines whether the selected unit meets a constraint.
  • the decoder tests a first set of partitions to partition the unit, each partition from the set of partitions having a same partition direction. If the unit does not satisfy the predetermined constraint, at step 814 the decoder tests a second set of partitions to partition the unit, the partitions in the second set of partitions including the first set of partitions and additional partitions with a different direction than the first set of partitions. At step 816, the encoder partitions the unit using a partition from the first set of partitions or the second set of partitions identified by the testing. The method 800 returns back to step 808 and executes steps 810-816 on each remaining unit in the selected set of units. While not shown in FIG.
  • the method can run steps 808-816 on each set of units in the second set of units. Further, while not shown in method 800, the method can be run on the partitions generated at step 816 in an iterative fashion (e.g., to further partition the partitions made at step 816) .
  • the constraint can be one or more of a minimum length and a maximum length of a width of the second unit, a height of the second unit, or both, and/or whether the length of the height of the second unit, the width of the second unit, or both, are a power of two, and/or the like.
  • the maximum allowed length be denoted as L
  • the minimal allowed tree depth be denoted as l
  • the current CU width and height be w and h, respectively.
  • the horizontal block partition types are jointly tested for the current CU (e.g., jointly tested in addition to QT partitions, or jointly tested among horizontal BT, horizontal TT, and horizontal asymmetric partitions) .
  • FIG. 9 shows an example of only testing a horizontal split, according to some embodiments. As shown in FIG.
  • CU 902 has a width of 4 and a height of 16, and is tested for splitting. Since the width w is equal to four (the width w is tested to see whether it is greater than or equal to 0, and less than or equal to 4) , then only the horizontal split direction is allowed.
  • FIG. 9 shows testing a binary split 904 and two asymmetric splits 906 and 908. If one of the horizontal block partition types is selected as the final CU split method, then the binary split direction is implicitly indicated. Similarly, in another embodiment, if l ⁇ h ⁇ L, then only the vertical block partition types are jointly tested for the current CU. The binary split direction is therefore implicitly indicated once the vertical block partition type is finally selected.
  • the horizontal or vertical block partition types could be either symmetric and/or asymmetric block partition types.
  • FIG. 10 shows an example of testing based on whether a side is a power of two, according to some embodiments.
  • the CU 1002 has a height of 12 and a width of 16.
  • the vertical binary partition 1004 and vertical asymmetric partitions 1006 and 1008 are tested.
  • the horizontal binary partition 1010 and horizontal asymmetric partitions 1012 and 1014 are tested. For example, if the CU width is not a power of 2, then only the horizontal block partition types (e.g., 1010, 1012, and 1014) are jointly tested for the current CU.
  • the binary split direction is implicitly indicated.
  • the CU height is not the power of 2
  • only the vertical block partition types e.g., 1004, 1006, 1008 are jointly tested for the current CU.
  • the binary split direction is implicitly indicated once the vertical block partition type is finally selected.
  • the horizontal or vertical block partition types could be either symmetric and/or asymmetric block partition types.
  • the block partition process is early terminated if both the CU width and CU height are not a power of 2.
  • the quad tree splitting process will be early terminated once the CU width and CU height are not a power of 2. No further CU splitting syntax is indicated.
  • the binary tree splitting process will be early terminated once the CU width and CU height are not a power of 2. No further CU splitting syntax is indicated.
  • FIG. 11 shows an example 1100 of early termination based on whether a side is a power of two, according to some embodiments.
  • CU 1102 when splitting into sub-CUs 1102A and 1102B, since neither the height nor the width of sub-CU 1102B is a power of two, the block partition process is early terminated for sub-CU 1102B.
  • CU 1104 when splitting into sub-CUs 1104A through 1104D, since neither the height nor the width of sub-CU 1104B is a power of two, then the block partition process is early terminated for sub-CU 1104B.
  • FIG. 12 illustrates an exemplary method 1200 for partitioning a CU when the height or width of the CU is not a power of two, according to some embodiments.
  • the encoder receives a slice of an image or of a video that is partitioned into a set of units (e.g., CTUs) .
  • the encoder partitions each unit in the set of units into a set of second units.
  • the encoder selects a set of units from the set of second units.
  • the encoder selects a unit from the selected set of units.
  • the encoder executes steps 1210-1216 to partition the selected unit.
  • the encoder determines whether the selected unit meets a constraint.
  • the encoder tests a first set of partitions to partition the unit, each partition from the first set of partitions comprising a plurality of sub-units, each sub-unit comprising a width meeting a second constraint (e.g., a power of two) , a height meeting the second constraint, or both. If the unit does not meet the constraint, at step 1214 the encoder tests a second set of partitions.
  • the second set of partitions may include the first set of partitions and/or may include other partitions not meeting the second constraint.
  • the encoder partitions the unit using a partition from the set of partitions identified by the testing.
  • the method 1200 returns back to step 1208 and executes steps 1210-1216 on each remaining unit in the selected set of units. While not shown in FIG. 12, the method can run steps 1208-1216 on each set of units in the second set of units. Further, while not shown in method 1200, the method can be run on the partitions generated at step 1216 in an iterative fashion (e.g., to further partition the partitions made at step 1216) .
  • the constraint can include a width of the second unit not being a power of two, a height of the second unit not being a power of two, or both.
  • the second constraint can be the length of the height or width, or both, of the sub-units being a power of two.
  • the sets can include splitting types such as the symmetric vertical splitting (e.g., shown in FIG. 4 as (b) ) , symmetric horizontal splitting (e.g., shown in FIG. 4 as (c) ) , and/or one or more asymmetric splitting types shown in FIG. 5 as (a) - (d) .
  • splitting types such as the symmetric vertical splitting (e.g., shown in FIG. 4 as (b) ) , symmetric horizontal splitting (e.g., shown in FIG. 4 as (c) ) , and/or one or more asymmetric splitting types shown in FIG. 5 as (a) - (d) .
  • Block 1302 has a width of W and a height of 3H/4.
  • the TU partition for block 1302 is composed of a W x H/2 TU 1304 and then a W x H/4 TU 1306, as shown in (a) .
  • the TU partition for block 1302 is composed of a W x H/4 block 1308 and then a W x H/2 block 1310, as shown in (b) .
  • the TU partition is composed of three W x H/4 transform blocks 1312A-C, as shown in (c) .
  • block 1350 has a height H and a width 3W/4.
  • the TU partition of block 1350 is composed of a W/2 x H TU 1352 and a W/4 x H TU 1354, as shown in (d) .
  • the TU partition for block 1350 is composed of a W/4 x H TU 1358 and then a W/2 x H TU 1356, as shown in (e) .
  • the TU partition of block 1350 is composed of three W/4 x H TUs 1360A-C, as shown in (f) .
  • FIG. 14 shows examples of implicitly indicating the TU partition, according to some embodiments.
  • FIG. 14 shows block 1402 with a width and height of 3W/4.
  • the TU partition for block 1402 is composed of four transform blocks, as shown in (a) - (d) .
  • the TU partition of block 1402 is composed of nine transform blocks, as shown in (e) .
  • the TU partition of block 1402 is composed of five transform blocks, as shown in (f) - (i) .
  • FIG. 15 shows examples of implicitly indicating the TU partition according to coding mode, according to some embodiments.
  • the TU partition used in intra mode is partition 1552, composed of nine W/4 x H/4 transform blocks
  • the TU partition used in inter mode is partition 1506, composed of a W/2 x H/2, a W/2 x H/4, a W/4 x H/2 and W/4 x H/4 TU (or in some other order) .
  • the TU partition for intra coded block can be assigned to the partition type in 14 (e) .
  • the TU partition for an inter coded block can be assigned to one of the partition types in FIG. 14.
  • the TU partition for an intra coded block can be set to one of the partition types in FIG. 14.
  • the TU partition for inter coded block can be assigned to one of the partition types in FIG. 14 (a) - (d) .
  • the TU partition could be implicitly and conditionally indicated according to the intra/inter coding mode.
  • the TU partition used in intra mode is composed of three W/4 x H transform blocks, and the TU partition used in inter mode is firstly composed of a W/2 x H and then a W/4 x H transform blocks.
  • the TU partition used in intra mode is composed of three W/4 x H transform blocks, and the TU partition used in inter mode is firstly composed of a W/4 x H and then a W/2 x H transform blocks.
  • the TU partition could be implicitly and conditionally indicated according to the intra/inter coding mode.
  • the TU partition used in intra mode is partition 1504, composed of three W x H/4 transform blocks
  • the TU partition used in inter mode is partition 1506, composed of a W x H/2 and a W x H/4 transform block (or in the opposite order) .
  • a syntax element can be used to explicitly indicate the TU partition.
  • the syntax element can be signaled in a video parameter set (VPS) , a sequence parameter set (SPS) , a picture parameter set (PPS) , a slice header, a coding unit, and/or the like.
  • the constraint comprises a series of values to split the side into many segments in power of two. For example, given a 24x12 unit, for the side with a length of 24, a series of values can be ⁇ 0, 1, 1 ⁇ , indicating to split the side into 16 and 8 (e.g., 4x0, 8x1, and 16x1) .
  • a series of values can be ⁇ 1, 1 ⁇ , indicating to split the side into 8 and 4 (e.g., 4x1, and 8x1) .
  • the indication is only for the side that is not a power of 2.
  • a series of values can be ⁇ 3 ⁇ , indicating to split the side into 4, 4, and 4 (e.g., 4x3) .
  • the TU partition could be implicitly and/or explicitly indicated according to the intra/inter coding mode.
  • the TU partition used in intra coding mode can be composed of three W x H/4 transform blocks, and a syntax element can be used to explicitly indicate the TU partition used in inter mode.
  • a syntax element can be used to explicitly indicate the TU partition used in intra mode, and the TU partition used in inter mode can be firstly composed of a W x H/4 and then a W x H/2 transform block.
  • the syntax element can be signaled in VPS, SPS, PPS, slice header, a CU, and/or the like.
  • the TU partition could be implicitly and/or explicitly indicated according to the intra/inter coding mode.
  • the TU partition used in intra mode is composed of three W/4xH transform blocks, and a syntax element is used to explicitly indicate the TU partition used in inter mode.
  • a syntax element is used to explicitly indicate the TU partition used in intra mode, and the TU partition used in inter mode is firstly composed of a W/4xH and then a W/2xH transform blocks.
  • the syntax element can be signaled in VPS, SPS, PPS, slice header, a CU, and/or the like.
  • the TU partition could be implicitly and/or explicitly indicated according to the intra/inter coding mode.
  • the TU partition used in intra mode is the partition type in FIG. 14 (e) .
  • a syntax element is used to explicitly indicate the TU partition for inter coded.
  • a syntax element can be used to indicate the TU partition for intra coded block.
  • the TU partition for the inter coded block can be implicitly assigned to the one of the partition types in FIG. 14 (a) - (d) .
  • the techniques described herein may be embodied in computer-executable instructions implemented as software, including as application software, system software, firmware, middleware, embedded code, or any other suitable type of computer code.
  • Such computer-executable instructions may be written using any of a number of suitable programming languages and/or programming or scripting tools, and also may be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine.
  • these computer-executable instructions may be implemented in any suitable manner, including as a number of functional facilities, each providing one or more operations to complete execution of algorithms operating according to these techniques.
  • a “functional facility, ” however instantiated, is a structural component of a computer system that, when integrated with and executed by one or more computers, causes the one or more computers to perform a specific operational role.
  • a functional facility may be a portion of or an entire software element.
  • a functional facility may be implemented as a function of a process, or as a discrete process, or as any other suitable unit of processing.
  • each functional facility may be implemented in its own way; all need not be implemented the same way.
  • these functional facilities may be executed in parallel and/or serially, as appropriate, and may pass information between one another using a shared memory on the computer (s) on which they are executing, using a message passing protocol, or in any other suitable way.
  • functional facilities include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • functionality of the functional facilities may be combined or distributed as desired in the systems in which they operate.
  • one or more functional facilities carrying out techniques herein may together form a complete software package.
  • These functional facilities may, in alternative embodiments, be adapted to interact with other, unrelated functional facilities and/or processes, to implement a software program application.
  • Some exemplary functional facilities have been described herein for carrying out one or more tasks. It should be appreciated, though, that the functional facilities and division of tasks described is merely illustrative of the type of functional facilities that may implement the exemplary techniques described herein, and that embodiments are not limited to being implemented in any specific number, division, or type of functional facilities. In some implementations, all functionality may be implemented in a single functional facility. It should also be appreciated that, in some implementations, some of the functional facilities described herein may be implemented together with or separately from others (i.e., as a single unit or separate units) , or some of these functional facilities may not be implemented.
  • Computer-executable instructions implementing the techniques described herein may, in some embodiments, be encoded on one or more computer-readable media to provide functionality to the media.
  • Computer-readable media include magnetic media such as a hard disk drive, optical media such as a Compact Disk (CD) or a Digital Versatile Disk (DVD) , a persistent or non-persistent solid-state memory (e.g., Flash memory, Magnetic RAM, etc. ) , or any other suitable storage media.
  • Such a computer-readable medium may be implemented in any suitable manner.
  • “computer-readable media” also called “computer-readable storage media” ) refers to tangible storage media.
  • Tangible storage media are non-transitory and have at least one physical, structural component.
  • a “computer-readable medium, ” as used herein at least one physical, structural component has at least one physical property that may be altered in some way during a process of creating the medium with embedded information, a process of recording information thereon, or any other process of encoding the medium with information. For example, a magnetization state of a portion of a physical structure of a computer-readable medium may be altered during a recording process.
  • some techniques described above comprise acts of storing information (e.g., data and/or instructions) in certain ways for use by these techniques.
  • the information may be encoded on a computer-readable storage media.
  • advantageous structures may be used to impart a physical organization of the information when encoded on the storage medium. These advantageous structures may then provide functionality to the storage medium by affecting operations of one or more processors interacting with the information; for example, by increasing the efficiency of computer operations performed by the processor (s) .
  • these instructions may be executed on one or more suitable computing device (s) operating in any suitable computer system, or one or more computing devices (or one or more processors of one or more computing devices) may be programmed to execute the computer-executable instructions.
  • a computing device or processor may be programmed to execute instructions when the instructions are stored in a manner accessible to the computing device or processor, such as in a data store (e.g., an on-chip cache or instruction register, a computer-readable storage medium accessible via a bus, a computer-readable storage medium accessible via one or more networks and accessible by the device/processor, etc. ) .
  • a data store e.g., an on-chip cache or instruction register, a computer-readable storage medium accessible via a bus, a computer-readable storage medium accessible via one or more networks and accessible by the device/processor, etc.
  • Functional facilities comprising these computer-executable instructions may be integrated with and direct the operation of a single multi-purpose programmable digital computing device, a coordinated system of two or more multi-purpose computing device sharing processing power and jointly carrying out the techniques described herein, a single computing device or coordinated system of computing device (co-located or geographically distributed) dedicated to executing the techniques described herein, one or more Field-Programmable Gate Arrays (FPGAs) for carrying out the techniques described herein, or any other suitable system.
  • FPGAs Field-Programmable Gate Arrays
  • a computing device may comprise at least one processor, a network adapter, and computer-readable storage media.
  • a computing device may be, for example, a desktop or laptop personal computer, a personal digital assistant (PDA) , a smart mobile phone, a server, or any other suitable computing device.
  • PDA personal digital assistant
  • a network adapter may be any suitable hardware and/or software to enable the computing device to communicate wired and/or wirelessly with any other suitable computing device over any suitable computing network.
  • the computing network may include wireless access points, switches, routers, gateways, and/or other networking equipment as well as any suitable wired and/or wireless communication medium or media for exchanging data between two or more computers, including the Internet.
  • Computer-readable media may be adapted to store data to be processed and/or instructions to be executed by processor. The processor enables processing of data and execution of instructions. The data and instructions may be stored on the computer-readable storage media.
  • a computing device may additionally have one or more components and peripherals, including input and output devices. These devices can be used, among other things, to present a user interface. Examples of output devices that can be used to provide a user interface include printers or display screens for visual presentation of output and speakers or other sound generating devices for audible presentation of output. Examples of input devices that can be used for a user interface include keyboards, and pointing devices, such as mice, touch pads, and digitizing tablets. As another example, a computing device may receive input information through speech recognition or in other audible format.
  • Embodiments have been described where the techniques are implemented in circuitry and/or computer-executable instructions. It should be appreciated that some embodiments may be in the form of a method, of which at least one example has been provided. The acts performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.
  • exemplary is used herein to mean serving as an example, instance, or illustration. Any embodiment, implementation, process, feature, etc. described herein as exemplary should therefore be understood to be an illustrative example and should not be understood to be a preferred or advantageous example unless otherwise indicated.

Landscapes

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

Abstract

Les techniques décrites dans la présente invention concernent des procédés, un appareil, et des supports lisibles par ordinateur, configurés pour coder une image ou une vidéo. Une tranche est partitionnée en un ensemble de premières unités. Pour chaque première unité dans l'ensemble de premières unités, la première unité est partitionnée en un ensemble de secondes unités. Le partitionnement consiste, pour chaque seconde unité dans l'ensemble de secondes unités, à déterminer si la seconde unité satisfait une contrainte prédéterminée. Si la seconde unité ne satisfait pas la contrainte prédéterminée, un premier ensemble de techniques de partitionnement est testé afin de partitionner la seconde unité. Si la seconde unité satisfait la contrainte prédéterminée, le premier ensemble de techniques de partitionnement et un second ensemble de techniques de partitionnement sont testés pour partitionner la seconde unité. La seconde unité est partitionnée à l'aide d'une technique figurant dans le premier ensemble de techniques de partitionnement ou le second ensemble de techniques de partitionnement, identifiée par le test.
PCT/CN2017/106073 2016-10-14 2017-10-13 Partitionnement de blocs à l'aide de structures arborescentes WO2018068762A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201780063090.0A CN109845268A (zh) 2016-10-14 2017-10-13 使用树结构的块分割
EP17859515.3A EP3523979A4 (fr) 2016-10-14 2017-10-13 Partitionnement de blocs à l'aide de structures arborescentes

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201662408144P 2016-10-14 2016-10-14
US201662408133P 2016-10-14 2016-10-14
US201662408140P 2016-10-14 2016-10-14
US62/408,140 2016-10-14
US62/408,133 2016-10-14
US62/408,144 2016-10-14
US15/730,917 US20180109812A1 (en) 2016-10-14 2017-10-12 Block partitioning using tree structures
US15/730,917 2017-10-12

Publications (1)

Publication Number Publication Date
WO2018068762A1 true WO2018068762A1 (fr) 2018-04-19

Family

ID=61904269

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/106073 WO2018068762A1 (fr) 2016-10-14 2017-10-13 Partitionnement de blocs à l'aide de structures arborescentes

Country Status (5)

Country Link
US (1) US20180109812A1 (fr)
EP (1) EP3523979A4 (fr)
CN (1) CN109845268A (fr)
TW (1) TWI666926B (fr)
WO (1) WO2018068762A1 (fr)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019245841A1 (fr) * 2018-06-18 2019-12-26 Interdigital Vc Holdings, Inc. Procédé et appareil de codage et de décodage vidéo sur la base d'un partitionnement binaire asymétrique de blocs d'image
WO2020008714A1 (fr) * 2018-07-06 2020-01-09 ソニー株式会社 Dispositif de traitement d'image, procédé de traitement d'image, et programme de traitement d'image
EP3544300B1 (fr) * 2016-11-21 2021-10-13 Panasonic Intellectual Property Corporation of America Dispositifs et procédés de codage et de décodage d'une image avec rapport de division adaptatif à la taille d'un bloc

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10326989B2 (en) 2016-05-25 2019-06-18 Arris Enterprises Llc General block partitioning method
WO2018092868A1 (fr) 2016-11-21 2018-05-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Dispositif de codage, dispositif de décodage, procédé de codage, et procédé de décodage
CN118042132A (zh) 2017-11-16 2024-05-14 松下电器(美国)知识产权公司 图像编码装置、编码方法、图像解码装置、解码方法和非暂时性存储介质
WO2019185815A1 (fr) * 2018-03-29 2019-10-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Concepts de partitionnement pour codage d'image à base de blocs
WO2019189279A1 (fr) * 2018-03-30 2019-10-03 Sharp Kabushiki Kaisha Systèmes et procédés de partitionnement de blocs vidéo à une limite d'une image pour coder une vidéo
US10972754B2 (en) * 2018-04-18 2021-04-06 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method of generating power of 2 transform block sizes
US10798382B2 (en) * 2018-04-26 2020-10-06 Tencent America LLC Sub-block transform
KR20230137497A (ko) * 2018-05-10 2023-10-04 삼성전자주식회사 영상의 부호화 및 복호화를 위한 영상의 분할 방법 및 장치
WO2019234605A1 (fr) * 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Arbre quadratique étendu doté de sous-blocs asymétriques et arbre différent destiné à une chroma
WO2020003183A1 (fr) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Division d'unités zéro
WO2020003268A2 (fr) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Définition d'unité zéro
EP3818701A4 (fr) * 2018-07-14 2022-07-20 HFI Innovation Inc. Procédés et appareils de traitement d'images vidéo avec des contraintes de partition dans un système de codage vidéo
CN112640460B (zh) * 2018-08-29 2024-05-03 华为技术有限公司 用于边界划分的装置及方法
CN118540508A (zh) * 2018-09-18 2024-08-23 华为技术有限公司 视频编码器、视频解码器及对应方法
EP3837835A1 (fr) 2018-09-18 2021-06-23 Huawei Technologies Co., Ltd. Procédé, dispositif et système de codage
US12093316B2 (en) 2019-01-31 2024-09-17 Hewlett Packard Enterprise Development Lp Partial file system instances
CN113273217A (zh) 2019-02-03 2021-08-17 北京字节跳动网络技术有限公司 非对称四叉树分割
WO2020164632A1 (fr) 2019-02-15 2020-08-20 Beijing Bytedance Network Technology Co., Ltd. Arbre partitionné en non puissance de deux dans une compression vidéo
CN113557746B (zh) * 2019-03-12 2024-07-05 北京字节跳动网络技术有限公司 视频编解码中的复合三叉树
US11392541B2 (en) * 2019-03-22 2022-07-19 Hewlett Packard Enterprise Development Lp Data transfer using snapshot differencing from edge system to core system
US11677969B2 (en) * 2019-03-22 2023-06-13 Tencent America LLC Method and apparatus for video coding
US11206417B2 (en) * 2019-05-30 2021-12-21 Tencent America LLC Method and apparatus for video coding
US11589043B2 (en) * 2019-06-24 2023-02-21 Tencent America LLC Flexible slice, tile and brick partitioning
CN112135139B (zh) * 2019-06-24 2023-03-24 腾讯美国有限责任公司 对编码视频数据进行分区的方法、计算机系统及存储介质
US11252443B2 (en) * 2019-08-12 2022-02-15 Tencent America LLC Method and apparatus for video coding
US11317090B2 (en) * 2019-08-12 2022-04-26 Tencent America LLC Method and apparatus for video coding
KR20220065758A (ko) * 2019-09-20 2022-05-20 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 코딩 블록의 스케일링 프로세스
CN114615497A (zh) * 2020-12-03 2022-06-10 腾讯科技(深圳)有限公司 视频解码方法、装置、计算机可读介质及电子设备
WO2022179414A1 (fr) * 2021-02-23 2022-09-01 Beijing Bytedance Network Technology Co., Ltd. Transformation et quantification sur des blocs non dyadiques
CN117157978A (zh) * 2021-03-30 2023-12-01 抖音视界有限公司 非二元块上的帧内预测

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104768011A (zh) * 2015-03-31 2015-07-08 浙江大学 图像编解码方法和相关装置
CN104918032A (zh) * 2014-03-13 2015-09-16 联发科技(新加坡)私人有限公司 简化基于深度的块分割的方法
CN104935921A (zh) * 2014-03-20 2015-09-23 联发科技股份有限公司 发送从模式组中选择的一个或多个编码模式的方法和设备
WO2015196104A1 (fr) * 2014-06-20 2015-12-23 Qualcomm Incorporated Mode de palette de couleurs dans un codage vidéo
WO2016091161A1 (fr) * 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Procédé de codage vidéo utilisant un partitionnement de blocs en arbre binaire

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102034004B1 (ko) * 2010-10-08 2019-10-18 지이 비디오 컴프레션, 엘엘씨 블록 분할 및 블록 병합을 지원하는 픽처 코딩
US20140029670A1 (en) * 2012-07-27 2014-01-30 Motorola Mobility Llc Devices and methods for processing of partition mode in high efficiency video coding
TW201419863A (zh) * 2012-11-13 2014-05-16 Hon Hai Prec Ind Co Ltd 影像切割系統及方法
TWI536811B (zh) * 2013-12-27 2016-06-01 財團法人工業技術研究院 影像處理方法與系統、解碼方法、編碼器與解碼器
US10212444B2 (en) * 2016-01-15 2019-02-19 Qualcomm Incorporated Multi-type-tree framework for video coding
US10567808B2 (en) * 2016-05-25 2020-02-18 Arris Enterprises Llc Binary ternary quad tree partitioning for JVET
US10609423B2 (en) * 2016-09-07 2020-03-31 Qualcomm Incorporated Tree-type coding for video coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104918032A (zh) * 2014-03-13 2015-09-16 联发科技(新加坡)私人有限公司 简化基于深度的块分割的方法
CN104935921A (zh) * 2014-03-20 2015-09-23 联发科技股份有限公司 发送从模式组中选择的一个或多个编码模式的方法和设备
WO2015196104A1 (fr) * 2014-06-20 2015-12-23 Qualcomm Incorporated Mode de palette de couleurs dans un codage vidéo
WO2016091161A1 (fr) * 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Procédé de codage vidéo utilisant un partitionnement de blocs en arbre binaire
CN104768011A (zh) * 2015-03-31 2015-07-08 浙江大学 图像编解码方法和相关装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3523979A4 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3544300B1 (fr) * 2016-11-21 2021-10-13 Panasonic Intellectual Property Corporation of America Dispositifs et procédés de codage et de décodage d'une image avec rapport de division adaptatif à la taille d'un bloc
EP3968637A1 (fr) * 2016-11-21 2022-03-16 Panasonic Intellectual Property Corporation of America Dispositif de codage, dispositif de décodage, procédé de codage et procédé de décodage
KR20230003609A (ko) * 2016-11-21 2023-01-06 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
KR102592616B1 (ko) 2016-11-21 2023-10-23 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
KR20230149868A (ko) * 2016-11-21 2023-10-27 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
KR102710983B1 (ko) 2016-11-21 2024-09-27 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
WO2019245841A1 (fr) * 2018-06-18 2019-12-26 Interdigital Vc Holdings, Inc. Procédé et appareil de codage et de décodage vidéo sur la base d'un partitionnement binaire asymétrique de blocs d'image
US11956430B2 (en) 2018-06-18 2024-04-09 Interdigital Vc Holdings, Inc. Method and apparatus for video encoding and decoding based on asymmetric binary partitioning of image blocks
WO2020008714A1 (fr) * 2018-07-06 2020-01-09 ソニー株式会社 Dispositif de traitement d'image, procédé de traitement d'image, et programme de traitement d'image

Also Published As

Publication number Publication date
EP3523979A1 (fr) 2019-08-14
TWI666926B (zh) 2019-07-21
TW201820881A (zh) 2018-06-01
EP3523979A4 (fr) 2020-05-13
US20180109812A1 (en) 2018-04-19
CN109845268A (zh) 2019-06-04

Similar Documents

Publication Publication Date Title
WO2018068762A1 (fr) Partitionnement de blocs à l'aide de structures arborescentes
US11882300B2 (en) Low complexity affine merge mode for versatile video coding
US10721469B2 (en) Line buffer reduction for adaptive loop filtering in video coding
US11477474B2 (en) Methods and apparatus for multi-hypothesis mode reference and constraints
TWI738036B (zh) 產生仿射候選的方法及裝置
US11695967B2 (en) Block level geometric partitioning
US20180184126A1 (en) Deriving bilateral filter information based on a prediction mode in video coding
US20200204801A1 (en) Adaptive loop filtering classification in video coding
KR102005007B1 (ko) 픽쳐 예측 방법 및 관련 장치
US20200244989A1 (en) Method and device for inter-prediction mode-based image processing
US11451810B2 (en) Merge candidate reorder based on global motion vector
JP2024045720A (ja) インタ予測における大域的運動制約運動ベクトル
US20210218977A1 (en) Methods and systems of exponential partitioning
JP2023105073A (ja) 大域的運動を伴うフレームにおける適応型運動ベクトル予測候補
JP2023093765A (ja) 大域的運動を伴うフレームにおける選択的運動ベクトル予測候補
US12015760B2 (en) Video coding for handling different picture sizes
US20210400289A1 (en) Methods and systems for constructing merge candidate list including adding a non- adjacent diagonal spatial merge candidate

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2017859515

Country of ref document: EP

Effective date: 20190506