WO2019244115A2 - Automatic partition for cross blocks - Google Patents
Automatic partition for cross blocks Download PDFInfo
- Publication number
- WO2019244115A2 WO2019244115A2 PCT/IB2019/055242 IB2019055242W WO2019244115A2 WO 2019244115 A2 WO2019244115 A2 WO 2019244115A2 IB 2019055242 W IB2019055242 W IB 2019055242W WO 2019244115 A2 WO2019244115 A2 WO 2019244115A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- picture
- size
- tree
- coding
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Definitions
- This patent document is directed generally to image and video coding and decoding technologies.
- Devices, systems and methods related to picture border coding for image and video coding are described. More generally, the presently disclosed technology provides enhancements for the processing of sub-blocks that are located at the borders of a block of video data (e.g., in a picture, slice, tile and the like).
- the described methods may be applied to both the existing video coding standards (e.g., High Efficiency Video Coding (HEVC)) and future video coding standards (e.g., Versatile Video Coding) or video codecs.
- HEVC High Efficiency Video Coding
- Versatile Video Coding Versatile Video Coding
- the disclosed technology may be used to provide a method for processing pictures.
- This method includes segmenting a picture into one or multiple picture segments, determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels, selecting a second block of size K x L pixels, where (K ⁇ M and L ⁇ N) or (K ⁇ M and L ⁇ N) and the second block falls entirely within the picture segment, and processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, and wherein the processing includes splitting the second block into sub-blocks without an indication on the splitting.
- the method for processing pictures includes segmenting a picture into one or multiple picture segments, determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels, selecting a second block of size K x L pixels, where (K ⁇ M and L ⁇ N) or ( K ⁇ M and L ⁇ N), and processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, wherein a size of the partition tree is based on a minimally allowed partition tree size or a maximally allowed partition tree depth.
- the method for processing pictures includes parsing a bitstream representation of a picture in which the picture is coded by dividing into one or more multiple picture segments, determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels, selecting a second block of size K x L pixels, wherein (K ⁇ M and L ⁇ N) or (K ⁇ M and L ⁇ N ), and processing, using a partition tree, the border of the picture segment, wherein the processing includes splitting the second block into sub-blocks without an indication on the splitting.
- the method for processing pictures includes parsing a bitstream representation of a picture in which the picture is coded by dividing into one or more multiple picture segments, determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels, selecting a second block of size K L pixels, wherein (K ⁇ M and L ⁇ N) or (K M and L ⁇ N), and processing, using a partition tree, the border of the picture segment, wherein a size of the partition tree is based on a minimally allowed partition tree size or a maximally allowed partition tree depth.
- a method of processing pictures includes segmenting a picture into one or more picture segments; determining that a first block comprises a first portion inside of a picture segment and a second portion outside of the picture segment; and performing a conversion between the first block and a bitstream representation of the first block using a transform with a size not larger than the first portion.
- a method of processing pictures includes: segmenting a picture into one or more picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M c N pixels; selecting a second block of size K x L pixels, wherein (K ⁇ M and L
- a method of processing pictures includes: segmenting a picture into one or more picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels; selecting a second block of size K x L pixels, wherein (K ⁇ M and L
- a method of processing pictures comprises: selecting a first block in a first picture with M x N samples; and selecting a second block in a second picture with K x L samples, wherein K x L is unequal to M x N; and wherein the first block is processed using a partition tree split from the Mx N samples and the second block is processed using another partition tree split from the K x L samples.
- a method of processing pictures includes segmenting a picture into one or more picture segments; determining that a first block comprises a first portion inside of a picture segment and a second portion outside of the picture segment; and performing a conversion between the first block and a bitstream representation of the first block using a transform with a size not larger than the first portion.
- a method of processing pictures includes: segmenting a picture into one or more picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels; selecting a second block of size K x L pixels, wherein (K ⁇ M and L
- a method of processing pictures includes: segmenting a picture into one or more picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M c N pixels; selecting a second block of size K x L pixels, wherein (K ⁇ M and L ⁇ N) or (K ⁇ M and L ⁇ N); and processing the border of the picture segment, and wherein a same partition tree is used to process a luma component and a chroma component included in the first block.
- a method of processing pictures comprises: selecting a first block in a first picture with M x N samples; and selecting a second block in a second picture with K x L samples, wherein K x L is unequal to M x N; and wherein the first block is processed using a partition tree split from the Mx N samples and the second block is processed using another partition tree split from the K x L samples.
- the above-described method is embodied in the form of processor-executable code and stored in a computer-readable program medium.
- a device that is configured or operable to perform the above-described method.
- the device may include a processor that is
- a video decoder apparatus may implement a method as described herein.
- FIG. 1 shows an example block diagram of a typical High Efficiency Video Coding (HE VC) video encoder and decoder.
- HE VC High Efficiency Video Coding
- FIG. 2 shows examples of macroblock (MB) partitions in H.264/AVC.
- FIG. 3 shows examples of splitting coding blocks (CBs) into prediction blocks (PBs).
- FIGS. 4A and 4B show an example of the subdivision of a coding tree block (CTB) into CBs and transform blocks (TBs), and the corresponding quadtree, respectively.
- CB coding tree block
- TBs transform blocks
- FIG. 5 shows an example of a partition structure of one frame.
- FIGS. 6A and 6B show the subdivisions and signaling methods, respectively, of a CTB highlighted in the exemplary frame in FIG. 5.
- FIGS. 7A and 7B show an example of the subdivisions and a corresponding QTBT (quadtree plus binary tree) for a largest coding unit (LCU).
- QTBT quadtree plus binary tree
- FIGS. 8A-8E show examples of partitioning a coding block.
- FIG. 9 shows an example subdivision of a CB based on a QTBT.
- FIGS. 10A-10I show examples of the partitions of a CB supported the multi-tree type (MTT), which is a generalization of the QTBT.
- MTT multi-tree type
- FIG. 11 shows an example of tree-type signaling.
- FIGS. 12A-12C show examples of CTBs crossing picture borders.
- FIGS. 13A-13G show examples of partitioning a CB using quadtree (QT), binary tree (BT) and ternary tree (TT) structures.
- QT quadtree
- BT binary tree
- TT ternary tree
- FIG. 14 shows an example of padding a coding unit (CU).
- FIGS. 15A-15C show examples of subdividing a CTB that crosses a picture border.
- FIGS. 16-22 show flowcharts of examples of a method for processing pictures in accordance with the presently disclosed technology.
- FIG. 23 is a block diagram illustrating an example of the architecture for a computer system or other control device that can be utilized to implement various portions of the presently disclosed technology.
- FIG. 24 shows a block diagram of an example embodiment of a mobile device that can be utilized to implement various portions of the presently disclosed technology.
- Video codecs typically include an electronic circuit or software that compresses or decompresses digital video, and are continually being improved to provide higher coding efficiency.
- a video codec converts uncompressed video to a compressed format or vice versa.
- the compressed format usually conforms to a standard video compression specification, e.g., the High Efficiency Video Coding (HEVC) standard (also known as H.265 or MPEG-H Part 2), the Versatile Video Coding standard to be finalized, or other current and/or future video coding standards.
- HEVC High Efficiency Video Coding
- MPEG-H Part 2 the Versatile Video Coding standard to be finalized, or other current and/or future video coding standards.
- Embodiments of the disclosed technology may be applied to existing video coding standards (e.g., HEVC, H.265) and future standards to improve compression performance. Section headings are used in the present document to improve readability of the description and do not in any way limit the discussion or the embodiments (and/or implementations) to the respective sections only.
- FIG. 1 shows an example block diagram of a typical HEVC video encoder and decoder.
- An encoding algorithm producing an HEVC compliant bitstream would typically proceed as follows. Each picture is split into block-shaped regions, with the exact block partitioning being conveyed to the decoder. The first picture of a video sequence (and the first picture at each clean random access point into a video sequence) is coded using only intra picture prediction (that uses some prediction of data spatially from region-to-region within the same picture, but has no dependence on other pictures). For all remaining pictures of a sequence or between random access points, inter-picture temporally predictive coding modes are typically used for most blocks.
- the encoding process for inter-picture prediction consists of choosing motion data comprising the selected reference picture and motion vector (MV) to be applied for predicting the samples of each block.
- the encoder and decoder generate identical inter-picture prediction signals by applying motion compensation (MC) using the MV and mode decision data, which are transmitted as side information.
- MC motion compensation
- the residual signal of the intra- or inter-picture prediction which is the difference between the original block and its prediction, is transformed by a linear spatial transform.
- the transform coefficients are then scaled, quantized, entropy coded, and transmitted together with the prediction information.
- the encoder duplicates the decoder processing loop (see gray-shaded boxes in FIG.
- the quantized transform coefficients are constructed by inverse scaling and are then inverse transformed to duplicate the decoded approximation of the residual signal.
- the residual is then added to the prediction, and the result of that addition may then be fed into one or two loop filters to smooth out artifacts induced by block-wise processing and quantization.
- the final picture representation (that is a duplicate of the output of the decoder) is stored in a decoded picture buffer to be used for the prediction of subsequent pictures.
- the order of encoding or decoding processing of pictures often differs from the order in which they arrive from the source;
- decoding order i.e., bitstream order
- output order i.e., display order
- Video material to be encoded by HEVC is generally expected to be input as progressive scan imagery (either due to the source video originating in that format or resulting from deinterlacing prior to encoding).
- No explicit coding features are present in the HEVC design to support the use of interlaced scanning, as interlaced scanning is no longer used for displays and is becoming substantially less common for distribution.
- a metadata syntax has been provided in HEVC to allow an encoder to indicate that interlace-scanned video has been sent by coding each field (i.e., the even or odd numbered lines of each video frame) of interlaced video as a separate picture or that it has been sent by coding each interlaced frame as an HEVC coded picture. This provides an efficient method of coding interlaced video without burdening decoders with a need to support a special decoding process for it.
- the core of the coding layer in previous standards was the macroblock, containing a 16x 16 block of luma samples and, in the usual case of 4:2:0 color sampling, two corresponding 8x8 blocks of chroma samples.
- An intra-coded block uses spatial prediction to exploit spatial correlation among pixels. Two partitions are defined: 16x16 and 4x4.
- An inter-coded block uses temporal prediction, instead of spatial prediction, by estimating motion among pictures.
- Motion can be estimated independently for either 16x16 macroblock or any of its sub-macroblock partitions: 16x8, 8x16, 8x8, 8x4, 4x8, 4x4, as shown in FIG. 2. Only one motion vector (MV) per sub-macroblock partition is allowed.
- a coding tree unit (CTU) is split into coding units (CUs) by using a quadtree structure denoted as coding tree 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.
- Each CU can be further split into one, two or four prediction units (PUs) according to the PU splitting type. Inside one PU, the same prediction process is applied and the relevant information is transmitted to the decoder on a PU basis.
- a CU After obtaining the residual block by applying the prediction process based on the PU splitting type, a CU can be partitioned into transform units (TUs) according to another quadtree structure similar to the coding tree for the CU.
- transform units transform units
- One of key feature of the HEVC structure is that it has the multiple partition conceptions including CU, PU, and TU.
- Certain features involved in hybrid video coding using HEVC include:
- ( 1 ) Coding tree units (CTOs ' ) and coding tree block tCTB) structure The analogous structure in HEVC is the coding tree unit (CTU), which has a size selected by the encoder and can be larger than a traditional macroblock.
- the CTU consists of a luma CTB and the corresponding chroma CTBs and syntax elements.
- HEVC then supports a partitioning of the CTBs into smaller blocks using a tree structure and quadtree-like signaling.
- Coding units CUsj and coding blocks (CBsT
- the quadtree syntax of the CTU specifies the size and positions of its luma and chroma CBs.
- the root of the quadtree is associated with the CTU.
- the size of the luma CTB is the largest supported size for a luma CB.
- the splitting of a CTU into luma and chroma CBs is signaled jointly.
- a CTB may contain only one CU or may be split to form multiple CUs, and each CU has an associated partitioning into prediction units (PUs) and a tree of transform units (TUs).
- PUs prediction units
- TUs tree of transform units
- PBsj The decision whether to code a picture area using inter picture or intra picture prediction is made at the CU level.
- a PU partitioning structure has its root at the CU level.
- the luma and chroma CBs can then be further split in size and predicted from luma and chroma prediction blocks (PBs).
- HEVC supports variable PB sizes from 64x64 down to 4x4 samples.
- FIG. 3 shows examples of allowed PBs for an MxM CU.
- Transform units (Tusj and transform blocks:
- the prediction residual is coded using block transforms.
- a TU tree structure has its root at the CU level.
- the luma CB residual may be identical to the luma transform block (TB) or may be further split into smaller luma TBs. The same applies to the chroma TBs.
- Integer basis functions similar to those of a discrete cosine transform (DCT) are defined for the square TB sizes 4x4, 8x8, 16x16, and 32x32.
- DCT discrete cosine transform
- an integer transform derived from a form of discrete sine transform (DST) is alternatively specified.
- a CB can be recursively partitioned into transform blocks (TBs).
- the partitioning is signaled by a residual quadtree. Only square CB and TB partitioning is specified, where a block can be recursively split into quadrants, as illustrated in FIG. 4.
- a flag signals whether it is split into four blocks of size M/2xM/2. If further splitting is possible, as signaled by a maximum depth of the residual quadtree indicated in the SPS, each quadrant is assigned a flag that indicates whether it is split into four quadrants.
- the leaf node blocks resulting from the residual quadtree are the transform blocks that are further processed by transform coding.
- the encoder indicates the maximum and minimum luma TB sizes that it will use. Splitting is implicit when the CB size is larger than the maximum TB size. Not splitting is implicit when splitting would result in a luma TB size smaller than the indicated minimum.
- the chroma TB size is half the luma TB size in each dimension, except when the luma TB size is 4x4, in which case a single 4x4 chroma TB is used for the region covered by four 4x4 luma TBs.
- intra-picture-predicted CUs the decoded samples of the nearest-neighboring TBs (within or outside the CB) are used as reference data for intra picture prediction.
- the HEVC design allows a TB to span across multiple PBs for inter-picture predicted CUs to maximize the potential coding efficiency benefits of the quadtree-structured TB partitioning.
- the borders of the picture are defined in units of the minimally allowed luma CB size. As a result, at the right and bottom borders of the picture, some CTUs may cover regions that are partly outside the borders of the picture. This condition is detected by the decoder, and the CTU quadtree is implicitly split as necessary to reduce the CB size to the point where the entire CB will fit into the picture.
- FIG. 5 shows an example of a partition structure of one frame, with a resolution of 416x240 pixels and dimensions 7 CTBs x 4 CTBs, wherein the size of a CTB is 64x64.
- the CTBs that are partially outside the right and bottom border have implied splits (dashed lines, indicated as 502), and the CUs that fall outside completely are simply skipped (not coded).
- the highlighted CTB (504), with row CTB index equal to 2 and column CTB index equal to 3, has 64x48 pixels within the current picture, and doesn’t fit a 64x64 CTB. Therefore, it is forced to be split to 32x32 without the split flag signaled. For the top-left 32x32, it is fully covered by the frame. When it chooses to be coded in smaller blocks (8x8 for the top-left 16x16, and the remaining are coded in 16x16) according to rate-distortion cost, several split flags need to be coded.
- FIGS. 6A and 6B show the subdivisions and signaling methods, respectively, of the highlighted CTB (504) in FIG. 5.
- log2_min_luma_coding_block_size_minus3 plus 3 specifies the minimum luma coding block size
- log2_diff_max_min_luma_coding_block_size specifies the difference between the maximum and minimum luma coding block size
- PicWidthlnMinCbsY PicWidthlnCtbsY, PicHeightlnMinCbsY, PicHeightlnCtbsY,
- PicSizelnMinCbsY PicSizelnCtbsY, PicSizelnSamplesY, PicWidthlnSamplesC and
- PicHeightlnSamplesC are derived as follows:
- MinCbLog2SizeY log2_min_luma_coding_block_size_minus3 + 3
- PicWidthlnMinCbsY pic width in luma samples / MinCbSizeY
- PicWidthlnCtbsY Ceil( pic width in luma samples ⁇ CtbSizeY )
- PicHeightlnMinCbsY pic height in luma samples / MinCbSizeY
- PicHeightlnCtbsY Ceil( pic height in luma samples ⁇ CtbSizeY )
- PicSizelnMinCbsY PicWidthlnMinCbsY * PicHeightlnMinCbsY
- PicSizelnCtbsY PicWidthlnCtbsY * PicHeightlnCtbsY
- PicSizelnSamplesY pic width in luma samples * pic height in luma samples
- PicWidthlnSamplesC pic width in luma samples / SubWidthC
- PicHeightlnSamplesC pic height in luma samples / SubHeightC
- chroma format idc is equal to 0 (monochrome) or separate_colour_plane_flag is equal to 1, CtbWidthC and CtbHeightC are both equal to 0;
- CtbWidthC and CtbHeightC are derived as follows:
- CtbWidthC CtbSizeY / SubWidthC
- CtbHeightC CtbSizeY / SubHeightC
- JEM Joint Exploration Model
- QTBT quadtree plus binary tree
- TT ternary tree
- the QTBT structure removes the concepts of multiple partition types, i.e. it removes the separation of the CU, PU and TU concepts, and supports more flexibility for CU partition shapes.
- a CU can have either a square or rectangular shape.
- a coding tree unit (CTU) is first partitioned by a quadtree structure.
- the quadtree leaf nodes are further partitioned by a binary tree structure.
- coding units There are two splitting types, symmetric horizontal splitting and symmetric vertical splitting, in the binary tree splitting.
- the binary tree leaf nodes are called coding units (CUs), and that segmentation is used for prediction and transform processing without any further partitioning. This means that the CU, PU and TU have the same block size in the QTBT coding block structure.
- a CU sometimes consists of coding blocks (CBs) of different colour components, e.g.
- one CU contains one luma CB and two chroma CBs in the case of P and B slices of the 4:2:0 chroma format and sometimes consists of a CB of a single component, e.g., one CU contains only one luma CB or just two chroma CBs in the case of I slices.
- CTU size the root node size of a quadtree, the same concept as in HEVC
- MinQTSize the minimally allowed quadtree leaf node size
- MaxBTSize the maximally allowed binary tree root node size
- MaxBTDepth the maximally allowed binary tree depth
- MinBTSize the minimally allowed binary tree leaf node size
- the CTU size is set as 128x 128 luma samples with two corresponding 64x64 blocks of chroma samples
- theMinQTSize is set as 16x
- t e MaxBTSize is set as 64x64
- the MinBTSize (for both width and height) is set as 4x4
- the MaxBTDepth is set as 4.
- the quadtree partitioning is applied to the CTU first to generate quadtree leaf nodes.
- the quadtree leaf nodes may have a size from 16x 16 (i.e., the MinQTSize) to 128x128 (i.e., the CTU size).
- the quadtree leaf node is also the root node for the binary tree and it has the binary tree depth as 0.
- MaxBTDepth i.e., 4
- no further splitting is considered.
- MinBTSize i.e. 4
- no further horizontal splitting is considered.
- the binary tree node has height equal to MinBTSize
- no further vertical splitting is considered.
- the leaf nodes of the binary tree are further processed by prediction and transform processing without any further partitioning. In the JEM, the maximum CTU size is 256x256 luma samples.
- FIG. 7A shows an example of block partitioning by using QTBT
- FIG. 7B shows the corresponding tree representation.
- the solid lines indicate quadtree splitting and dotted lines indicate binary tree splitting.
- each splitting (i.e., non-leaf) node of the binary tree one flag is signalled to indicate which splitting type (i.e., horizontal or vertical) is used, where 0 indicates horizontal splitting and 1 indicates vertical splitting.
- the quadtree splitting there is no need to indicate the splitting type since quadtree splitting always splits a block both horizontally and vertically to produce 4 sub-blocks with an equal size.
- the QTBT scheme supports the ability for the luma and chroma to have a separate QTBT structure.
- the luma and chroma CTBs in one CTU share the same QTBT structure.
- the luma CTB is partitioned into CUs by a QTBT structure
- the chroma CTBs are partitioned into chroma CUs by another QTBT structure. This means that a CU in an I slice consists of a coding block of the luma component or coding blocks of two chroma components, and a CU in a P or B slice consists of coding blocks of all three colour components.
- inter prediction for small blocks is restricted to reduce the memory access of motion compensation, such that bi-prediction is not supported for 4x8 and 8x4 blocks, and inter prediction is not supported for 4x4 blocks. In the QTBT of the JEM, these restrictions are removed.
- FIG. 8 A shows an example of quad-tree (QT) partitioning
- FIGS. 8B and 8C show examples of the vertical and horizontal binary-tree (BT) partitioning, respectively.
- BT binary-tree
- ternary tree (TT) partitions e.g., horizontal and vertical center-side ternary- trees (as shown in FIGS. 8D and 8E) are supported.
- region tree quad-tree
- prediction tree binary-tree or ternary-tree
- a CTU is firstly partitioned by region tree (RT).
- a RT leaf may be further split with prediction tree (PT).
- PT leaf may also be further split with PT until max PT depth is reached.
- a PT leaf is the basic coding unit. It is still called CU for convenience.
- a CU cannot be further split.
- Prediction and transform are both applied on CU in the same way as JEM.
- the whole partition structure is named‘multiple-type-tree’.
- a tree structure called a Multi-Tree Type which is a generalization of the QTBT, is supported.
- MTT Multi-Tree Type
- a Coding Tree Unit CTU
- the quad-tree leaf nodes are further partitioned by a binary-tree structure.
- the structure of the MTT constitutes of two types of tree nodes: Region Tree (RT) and Prediction Tree (PT), supporting nine types of partitions, as shown in FIG. 10.
- a region tree can recursively split a CTU into square blocks down to a 4x4 size region tree leaf node.
- a prediction tree can be formed from one of three tree types: Binary Tree, Ternary Tree, and Asymmetric Binary Tree.
- a PT split it is prohibited to have a quadtree partition in branches of the prediction tree.
- JEM the luma tree and the chroma tree are separated in I slices.
- RT signaling is same as QT signaling in JEM with exception of the context derivation.
- up to 4 additional bins are required, as shown in FIG. 11.
- the first bin indicates whether the PT is further split or not.
- the context for this bin is calculated based on the observation that the likelihood of further split is highly correlated to the relative size of the current block to its neighbors.
- the second bin indicates whether it is a horizontal partitioning or vertical partitioning.
- the presence of the center sided triple tree and the asymmetric binary trees (ABTs) increase the occurrence of“tall” or “wide” blocks.
- the third bin indicates the tree-type of the partition, i.e., whether it is a binary- tree/triple-tree, or an asymmetric binary tree.
- the fourth bin indicates the type of the tree.
- the four bin indicates up or down type for horizontally partitioned trees and right or left type for vertically partitioned trees. 1.5.1. Examples of restrictions at picture borders
- K x L samples are within picture border.
- the CU splitting rules on the picture bottom and right borders may apply to any of the coding tree configuration QTBT+TT, QTBT+ABT or QTBT+TT+ABT. They include the two following aspects: [00101] (1) If a part of a given Coding Tree node (CU) is partially located outside the picture, then the binary symmetric splitting of the CU is always allowed, along the concerned border direction (horizontal split orientation along bottom border, as shown in FIG. 12 A, vertical split orientation along right border, as shown in FIG. 12B). If the bottom-right corner of the current CU is outside the frame (as depicted in FIG. 12C), then only the quad-tree splitting of the CU is allowed. In addition, if the current binary tree depth is greater than the maximum binary tree depth and current CU is on the frame border, then the binary split is enabled to ensure the frame border is reached.
- the ternary tree split is allowed in case the first or the second border between resulting sub-CU exactly lies on the border of the picture.
- the asymmetric binary tree splitting is allowed if a splitting line (border between two sub-CU resulting from the split) exactly matches the picture border.
- the HEVC design has avoided several bits for splitting flags when one block (partition) is outside picture borders.
- the forced quad-tree partitioning is used for border CTUs, which is not efficient. It may require several bits on signaling the mode/residual/motion information even two neighboring square partitions may prefer to be coded together.
- Embodiments of the presently disclosed technology overcome the drawbacks of existing implementations, thereby providing video coding with higher efficiencies.
- Methods for picture border coding differentiate between CTBs or CBs on picture/tile/slice borders or boundaries (referred to as cross-CTBs or cross-CBs) which have samples outside of picture/tile/slice or other kinds of types borders or boundaries, and normal CTBs or CBs (with all samples within border).
- K / L the size of the CB if it is not at the border
- M*N the size of the CB if it is not at the border
- Example 1 A split of one K L cross-CTB is done automatically without being signaled wherein two or three partitions may be obtained based on the size relationship compared to the normal CTB.
- L0 is set to the maximally allowed value wherein K x
- L0 is allowed.
- L0 is set to the maximally allowed value wherein K x L0 and K x (L-L0) are both allowed.
- (1 « a) x Y or Y x (1 « a) is allowed in current picture/slice/tile etc.
- a is an integer.
- the other partition size is set to M x (L— (l « a)).
- L is equal to N
- two partitions are split without being signaled and one partition contains more/equal samples compared to the other one.
- one partition size is set to K0 x L and the other one is set to (K-KO) x L.
- K0 is set to the maximally allowed value (e.g., pre defined or signaled in the bistream) wherein K0 x L is allowed.
- K0 is set to the maximally allowed value wherein K0 x L and (K - K0) x L are both allowed.
- (1 « b) x Y or Y x (1 « b) is allowed in current picture/slice/tile etc.
- b is an integer.
- the two partitions may be placed from top-to- bottom when K is equal to M or K is larger than L; and/or the two partitions may be placed from left-to-right when L is equal to N or L is larger than K.
- Three partitions may apply, for example, when both K is unequal to M and L is unequal to N.
- Example 2 The splitting may automatically terminate if the size of a node reaches a minimally allowed partition tree size. Alternatively, the splitting may automatically terminate if depth value of a partition tree reaches the maximally allowed depth.
- Example 3 For blocks lying across picture borders, a smaller transform can be applied in order to fit the distribution of the residual data more closely.
- an 8x4 block may be used for the bottom of the picture while only top two sample rows remain within the picture, an 8x2 transform instead of 8x4 can be used.
- an 64x64 block may be used for the bottom of the picture while only top 48 sample rows remain within the picture, an 64x48 instead of 64x64 transform can be used.
- Example 4 Luma and chroma components may use the same rule to handle the cross- CTBs.
- luma and chroma may be treated separately considering chroma components may prefer larger partitions.
- Example 5 A set of allowed CTU or CU sizes (including square and/or non-square CTBs/CBs) may be utilized for a sequence/picture/slice/tile etc. In one example, furthermore, indices of allowed CTU sizes may be signaled.
- Example 6 Note that with a certain partitioning type, the resulting partition may have size which is not aligned with the supported transforms, and the option of transform skip should be provided when such case occurs. In other words, when the partition size is not aligned with the supported transform, processing based on the transform skip mode may be performed without being signaled.
- Example 7 When K*L is an allowed CTB or CU size (e.g., 64x48 is allowed when 64x64 is the CTB), tree partitions start from the K L block instead of MxN block covering the KxL block. For example, K*L is set to be the CTB or CB instead of using MxN samples, the depth/level values for all kinds of partition trees are set to 0.
- K*L is set to be the CTB or CB instead of using MxN samples
- the depth/level values for all kinds of partition trees are set to 0.
- CBs e.g., QT, BT, TT and/or other partitions
- FIGS. 13A-13G QT/BT/TT (i.e., four/two/three/ partitions) structures are shown in FIGS. 13A-13G.
- four sub-level CUs under the QT partition may be defined as: M/2xF/2, M/2xF/2, (K - M/2)xF/2, (K - M/2)xF/2.
- such a partition may be enabled when F is equal to N.
- sub-level CUs under the QT partition may be defined as: K/2xN/2, K/2xN/2, K/2x(F - N/2), K/2x(F - N/2).
- such a partition may be enabled when K is equal to M.
- Sub-level CUs in BT may be defined as: M/2xF, (K-M/2)xF.
- Sub-level CUs in BT may be defined as: KxN/2, Kx(F-N/2).
- Sub-level CUs in TT may be defined as: M/4xF, M/2xF, (K-
- Sub-level CUs in TT may be defined as: KxN/4, KxN/2, Kx(L-
- horizontal splitting methods (the split sub-block has a larger width compared to height) may be applied if K/L is larger than a first threshold and/or vertical splitting methods (the split sub-block has a larger height compared to width) may be applied if L/K is larger than a second threshold.
- QT is not allowed if max (K, L)/min(K, L) is larger than a third threshold.
- QT is not allowed if either K is equal to M, and/or L is equal to N (as shown in FIGS. 12A and 12B). QT is not allowed if either K is less than M, and/or L is less than N.
- the first/second/third thresholds may be pre-defined or signaled in the bitstreams, such as signaled in sequence parameter set/picture parameter set/slice header etc. In one example, the three thresholds are set to 1.
- the maximally and/or minimally allowed partition tree depths are set differently compared to those used for normal CTBs.
- the maximally allowed partition tree depths for cross-CTBs may be reduced.
- Example 8 When KxL is not an allowed CU size (e.g., 8 x 4 is disallowed when 256x256 is the CTB and minimally allowed BT size is 16x8; or 14 x 18), padding is applied to the KxL block to modify it to K’ xL’ wherein K’ xL’ is the allowed CU size.
- 8 x 4 is disallowed when 256x256 is the CTB and minimally allowed BT size is 16x8; or 14 x 18
- padding is applied to the KxL block to modify it to K’ xL’ wherein K’ xL’ is the allowed CU size.
- both width and height are padded.
- only one side are padded.
- K’ xK’ or L’ xL’ is one of the allowed CU size.
- K’ xL’ may be treated in the same way as in (a).
- K’ is set to 2 a wherein a satisfies 2" > K and 2“ ; ⁇ K.
- partitions 2" x Y or Y x 2° (Y is a positive integer value) is allowed in current picture/slice/tile etc.
- L’ is set to 2 b wherein b satisfies 2 h > L and 2 /,_/ ⁇ L.
- partitions 2 b c Y or Y x 2 b (Y is a positive integer value) is allowed in current picture/slice/tile etc.
- the existing simple padding methods may be applied.
- any motion-compensation based pixel padding may be applied.
- Regular procedure of coefficient coding is applicable to the supported transform size for each dimension individually. Note that in principle, the intention for padding is to fit the padded block size to the supported transform sizes, and hence the extra coding overhead because of padding should be minimized.
- coefficient scan may occur by considering the entire K’ xL’ block as a scanning unit, instead of using the conventional concept of Coefficient Group (CG). Scanning orders such as zig-zag or up-right diagonal scans can be easily adapted based on the K’ xL’ block size.
- CG Coefficient Group
- KxL (or reshaped KxL) is an available transform shape
- K x L boundary block is considered as a valid CU, and is coded the same as other leaf CU nodes in partition trees.
- FIG. 16 shows a flowchart of an exemplary method for processing pictures.
- the method 1600 includes, at step 1610, segmenting a picture into one or more multiple picture segments.
- the method 1600 includes, at step 1620, determining that a first block, of sizeM x N pixels, of a picture segment covers at least one region that is outside a border of the picture segment.
- the method 1600 includes, at step 1630, selecting a second block of size K x L pixels, where (K ⁇ M and L ⁇ N) or ( K ⁇ M and L ⁇ N), wherein the second block falls entirely within the picture segment.
- the method 1600 includes, at step 1640, processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block and wherein the processing includes splitting the second block into sub-blocks without an indication of the splitting.
- FIG. 17 shows a flowchart of another exemplary method for processing pictures. This flowchart includes some features and/or steps that are similar to those shown in FIG. 16 and described above. At least some of these features and/or steps may not be separately described in this section.
- the method 1700 includes, at step 1710, segmenting a picture into one or more multiple picture segments.
- the method 1700 includes, at step 1720, determining that a first block, of sizeM x N pixels, of a picture segment covers at least one region that is outside a border of the picture segment.
- the method 1700 includes, at step 1730, selecting a second block of size K L pixels, wherein (K ⁇ M and N) or (K M and ⁇ N).
- the method 1700 includes, at step 1740, processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the third block and wherein a size of the partition tree is based on minimally allowed partition tree size or a maximally allowed partition tree depth.
- the processing may comprise encoding the picture into a bitstream representation based on the partition tree.
- FIG. 18 shows a flowchart of an exemplary method for processing pictures.
- the method 1800 includes, at step 1810, parsing a bitstream representation of a picture in which the picture is coded by dividing into one or more multiple picture segments.
- the method 1800 includes, at step 1820, determining that a first block, of sizeM x N pixels, of a picture segment covers at least one region that is outside a border of the picture segment.
- the method 1800 includes, at step 1830, selecting a second block of size K x L pixels, where (K ⁇ M and N) or (K ⁇ M and L ⁇ N).
- the method 1800 includes, at step 1840, processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block and wherein the processing includes splitting the second block into sub-blocks without an indication of the splitting.
- FIG. 19 shows a flowchart of another exemplary method for processing pictures. This flowchart includes some features and/or steps that are similar to those shown in FIG. 16 and described above. At least some of these features and/or steps may not be separately described in this section.
- the method 1900 includes, at step 1910, parsing a bitstream representation of a picture in which the picture is coded by dividing into multiple picture segments.
- the method 1900 includes, at step 1920, determining that a first block, of sizeM x N pixels, of a picture segment covers at least one region that is outside a border of the picture segment.
- the method 1900 includes, at step 1930, selecting a second block of size K L pixels, wherein (K ⁇ M and N) or (K M and ⁇ N).
- the method 1900 includes, at step 1940, processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the third block and wherein a size of the partition tree is based on minimally allowed partition tree size or a maximally allowed partition tree depth.
- FIG. 20 shows a flowchart of another exemplary method for processing pictures.
- the method 2000 includes, at step 2010, segmenting a picture into one or more picture segments.
- the method 2000 includes, at step 2020, determining that a first block comprises a first portion inside of a picture segment and a second portion outside of the picture segment.
- the method 2000 includes, at step 2030, performing a conversion between the first block and a bitstream representation of the first block using a transform with a size not larger than the first portion.
- FIG. 21 shows a flowchart of another exemplary method for processing pictures.
- the method 2100 includes, at step 2110, segmenting a picture into one or more picture segments.
- the method 2100 includes, at step 2120, determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x JV pixels.
- the method 2100 includes, at step 2130, selecting a second block of size K x L pixels, wherein (K ⁇ M and L ⁇ N) or (K ⁇ M and L ⁇ N).
- the method 2100 includes, at step 2140, processing the border of the picture segment, wherein different partition trees are used to process a luma component and a chroma component included in the first block.
- FIG. 22 shows a flowchart of another exemplary method for processing pictures.
- the method 2200 includes, at step 2210, segmenting a picture into one or more picture segments.
- the method 2200 includes, at step 2220, determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels.
- the method 2200 includes, at step 2230, selecting a second block of size K L pixels, wherein (K ⁇ M and L ⁇ N) or (K ⁇ M and L ⁇ N).
- the method 2200 includes, at step 2240, processing the border of the picture segment, wherein a same partition tree is used to process a luma component and a chroma component included in the first block.
- the processing may comprise decoding a bitstream representation based on the partition tree to generate pixel values of the picture.
- the second block satisfies at least one of the conditions (i) that the second block falls entirely within the picture segment,
- backward compatibility may be defined as those transform or coding block sizes that are allowed for M*N blocks (e.g., sizes allowed for CTUs that are fully located within the picture, slice, or tile borders).
- backward compatibility may be defined as operating seamlessly with existing video coding standards that include, but are not limited to, the H.264/AVC (Advanced Video Coding) standard, the H.265/HE VC (High Efficiency Video Coding) standard, or the Scalable HEVC (SHVC) standard.
- H.264/AVC Advanced Video Coding
- H.265/HE VC High Efficiency Video Coding
- SHVC Scalable HEVC
- the processing includes using context-adaptive binary adaptive coding (CAB AC).
- CAB AC context-adaptive binary adaptive coding
- parameters corresponding to the partition tree may be communicated using signaling that is backward compatible with the video coding standard.
- the methods 1600-2200 may further include communicating block sizes (or their corresponding indices) that are backward compatible with existing video coding standards.
- the method 1600-2200 may further comprise determining that the size of the second block is not backward compatible with a video coding standard. In some implementations, the method 1600-2200 may further comprise selecting a third block of size K' x L' pixels by padding one or both dimensions of the second block, wherein K ⁇ K' and L ⁇ L and wherein the size of the third block is backward compatible with the video coding standard, and wherein the third block is a largest coding unit, a leaf coding block or a coding tree block
- the partition tree is further based on a size of a fourth block that falls entirely within the picture segment, where the size of the fourth block is smaller than the size of the second block, where the indication of the splitting is excluded from the processing, and where a size of at least one of those sub-blocks is identical to the size of the fourth block.
- the methods 1600-2200 may further include the first block being a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU) or a transform unit (TU).
- the CTU may include a luma coding tree block (CTB) and two corresponding chroma CTBs.
- CTB luma coding tree block
- a partition tree for the luma CTB is identical to the partition tree for at least one of the two corresponding chroma CTBs.
- a partition tree for the luma CTB is different from a partition tree for the corresponding chroma CTB, and the partition tree for the corresponding chroma CTB includes partitions that are larger than partitions in the partition tree for the luma CTB.
- the partition tree based on the size of the second block is different from a partition tree based on a fifth block that falls entirely within the picture segment.
- the picture segment is a slice or a tile.
- the method 1600-2200 further comprise communicating block sizes that are backward compatible with a video coding standard. In some implementations, the method 1600-2200 further comprise communicating indices corresponding to block sizes that are backward compatible with a video coding standard.
- the video coding standard is an H.264/AVC (Advanced Video Coding) standard or an H.265/HEVC (High Efficiency Video Coding) standard.
- FIG. 23 is a block diagram illustrating an example of the architecture for a computer system or other control device 2300 that can be utilized to implement various portions of the presently disclosed technology, including (but not limited to) method 1600-2200.
- the computer system 2300 includes one or more processors 2305 and memory 2310 connected via an interconnect 2325.
- the interconnect 2325 may represent any one or more separate physical buses, point to point connections, or both, connected by appropriate bridges, adapters, or controllers.
- the interconnect 2325 therefore, may include, for example, a system bus, a
- PCI Peripheral Component Interconnect
- ISA HyperTransport or industry standard architecture
- SCSI small computer system interface
- USB universal serial bus
- IIC I2C
- IEEE Institute of Electrical and Electronics Engineers
- the processor(s) 2305 may include central processing units (CPUs) to control the overall operation of, for example, the host computer. In certain embodiments, the processor(s) 2305 accomplish this by executing software or firmware stored in memory 2310.
- the processor(s) 2305 may be, or may include, one or more programmable general-purpose or special-purpose microprocessors, digital signal processors (DSPs), programmable controllers, application specific integrated circuits (ASICs), programmable logic devices (PLDs), or the like, or a combination of such devices.
- the memory 2310 can be or include the main memory of the computer system.
- the memory 2310 represents any suitable form of random access memory (RAM), read-only memory (ROM), flash memory, or the like, or a combination of such devices.
- the memory 2310 may contain, among other things, a set of machine instructions which, when executed by processor 2305, causes the processor 2305 to perform operations to implement embodiments of the presently disclosed technology.
- the network adapter 2315 provides the computer system 2300 with the ability to communicate with remote devices, such as the storage clients, and/or other storage servers, and may be, for example, an Ethernet adapter or Fiber Channel adapter.
- FIG. 24 shows a block diagram of an example embodiment of a mobile device 2100 that can be utilized to implement various portions of the presently disclosed technology, including (but not limited to) method 1600-1900.
- the mobile device 2400 can be a laptop, a smartphone, a tablet, a camcorder, or other types of devices that are capable of processing videos.
- the mobile device 2400 includes a processor or controller 2401 to process data, and memory 2402 in communication with the processor 2101 to store and/or buffer data.
- the processor 2401 can include a central processing unit (CPU) or a microcontroller unit (MCU).
- the processor 2401 can include a field-programmable gate-array (FPGA).
- FPGA field-programmable gate-array
- the mobile device 2400 includes or is in communication with a graphics processing unit (GPU), video processing unit (VPU) and/or wireless communications unit for various visual and/or communications data processing functions of the smartphone device.
- the memory 2402 can include and store processor-executable code, which when executed by the processor 2401, configures the mobile device 2400 to perform various operations, e.g., such as receiving information, commands, and/or data, processing information and data, and transmitting or providing processed information/data to another device, such as an actuator or external display.
- the memory 2402 can store information and data, such as instructions, software, values, images, and other data processed or referenced by the processor 2401.
- various types of Random Access Memory (RAM) devices, Read Only Memory (ROM) devices, Flash Memory devices, and other suitable storage media can be used to implement storage functions of the memory 2402.
- the mobile device 2400 includes an input/output (PO) unit 2103 to interface the processor 2401 and/or memory 2402 to other modules, units or devices.
- the PO unit 2403 can interface the processor 2401 and memory 2402 with to utilize various types of wireless interfaces compatible with typical data communication standards, e.g., such as between the one or more computers in the cloud and the user device.
- the mobile device 2400 can interface with other devices using a wired connection via the PO unit 2403.
- the mobile device 2400 can also interface with other external interfaces, such as data storage, and/or visual or audio display devices 2404, to retrieve and transfer data and information that can be processed by the processor, stored in the memory, or exhibited on an output unit of a display device 2404 or an external device.
- the display device 2404 can display a video frame that includes a block (a CU, PU or TU) that applies the intra-block copy based on whether the block is encoded using a motion compensation algorithm, and in accordance with the disclosed technology.
- a video decoder apparatus may implement a method of picture border coding as described herein is used for video decoding.
- the various features of the method may be similar to the above-described methods 1600-2200.
- the video decoding methods may be implemented using a decoding apparatus that is implemented on a hardware platform as described with respect to FIG. 23 and FIG. 24.
- a method for processing pictures comprising: segmenting a picture into one or multiple picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels; selecting a second block of size K x L pixels, wherein ( K ⁇ Mand L ⁇ N) or (K ⁇ Mand L ⁇ N) and the second block falls entirely within the picture segment; processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, and wherein the processing includes splitting the second block into sub-blocks without an indication on the splitting.
- a method for processing pictures comprising: segmenting a picture into one or multiple picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M N pixels; selecting a second block of size K x L pixels, wherein ( K ⁇ M and L ⁇ N ) or (K ⁇ M and L ⁇ N ); and processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, and wherein a size of the partition tree is based on a minimally allowed partition tree size or a maximally allowed partition tree depth.
- a method of processing pictures comprising: parsing a bitstream representation of a picture in which the picture is coded by dividing into one or multiple picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M c N pixels; selecting a second block of size K x L pixels, wherein ( K ⁇ M and L ⁇ N) or (K ⁇ M and L ⁇ N) and processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, and wherein the processing includes splitting the second block into sub-blocks without an indication on the splitting.
- a method of processing pictures comprising: parsing a bitstream representation of a picture in which the picture is coded by dividing into multiple picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels; selecting a second block of size K x L pixels, wherein ( K ⁇ M and L A) or (K ⁇ M and L ⁇ N) and processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, and wherein a size of the partition tree is based on a minimally allowed partition tree size or a maximally allowed partition tree depth.
- the method further comprises: determining that the size of the second block is not backward compatible with a video coding standard.
- H.264/AVC Advanced Video Coding
- H.265/HEVC High Efficiency Video Coding
- VVC Very Video Coding
- the first block is a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), or a transform unit (TU).
- CTU coding tree unit
- CU coding unit
- PU prediction unit
- TU transform unit
- CTB chroma
- CTB comprises partitions that are larger than partitions in the partition tree for the luma CTB.
- a method of processing pictures comprising: segmenting a picture into one or more picture segments; determining that a first block comprises a first portion inside of a picture segment and a second portion outside of the picture segment; and performing a conversion between the first block and a bitstream representation of the first block using a transform with a size not larger than the first portion.
- a method of processing pictures comprising: segmenting a picture into one or more picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block isM x JV pixels; selecting a second block of size K x L pixels, wherein (K ⁇ M and L ⁇ N) or (K ⁇ M and L ⁇ N) and processing the border of the picture segment, and wherein different partition trees are used to process a luma component and a chroma component included in the first block.
- a method of processing pictures comprising: segmenting a picture into one or more picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels; selecting a second block of size K x L pixels, wherein (K ⁇ M and L A) or (K M and L ⁇ N) and processing the border of the picture segment, and wherein a same partition tree is used to process a luma component and a chroma component included in the first block.
- a method of processing pictures comprising: selecting a first block in a first picture withM x N samples; and selecting a second block in a second picture with K x L samples, wherein K x L is unequal to M x N, and wherein the first block is processed using a partition tree split from the Mx A samples and the second block is processed using another partition tree split from the K x L samples.
- An apparatus in a video system comprising a processor and a non-transitory memory with instructions thereon, wherein the instructions upon execution by the processor, cause the processor to implement the method in any one of clauses 1 to 40.
- Implementations of the subject matter and the functional operations described in this patent document can be implemented in various systems, digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
- Implementations of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible and non-transitory computer readable medium for execution by, or to control the operation of, data processing apparatus.
- the computer readable medium can be a machine- readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them.
- the term“data processing unit” or“data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a
- the apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
- a computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- a computer program does not necessarily correspond to a file in a file system.
- a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code).
- a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
- the processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output.
- the processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
- processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
- a processor will receive instructions and data from a read only memory or a random access memory or both.
- the essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data.
- a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
- mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
- a computer need not have such devices.
- Computer readable media suitable for storing computer program instructions and data include all forms of nonvolatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices.
- semiconductor memory devices e.g., EPROM, EEPROM, and flash memory devices.
- the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Devices, systems and methods for picture border coding are described. In a representative aspect, a method for processing pictures includes segmenting a picture into one or multiple picture segments, determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M × N pixels, selecting a second block of size K × L pixels and where (K≤M and L<N) or (K<M and L≤N) and the second block falls entirely within the picture segment, and processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, wherein the processing includes splitting the second block into two or three sub-blocks without an indication on the splitting.
Description
AUTOMATIC PARTITION FOR CROSS BLOCKS
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] Under the applicable patent law and/or rules pursuant to the Paris Convention, this application is made to timely claim the priority to and benefit of International Patent Application No. PCT/CN2018/092125, filed on June 21, 2018. For all purposes under the U.S. law, the entire disclosure of International Patent Application No. PCT/CN2018/092125 is incorporated by reference as part of the disclosure of this application.
TECHNICAL FIELD
[0002] This patent document is directed generally to image and video coding and decoding technologies.
BACKGROUND
[0003] Digital video accounts for the largest bandwidth use on the internet and other digital communication networks. As the number of connected user devices capable of receiving and displaying video increases, it is expected that the bandwidth demand for digital video usage will continue to grow.
SUMMARY
[0004] Devices, systems and methods related to picture border coding for image and video coding are described. More generally, the presently disclosed technology provides enhancements for the processing of sub-blocks that are located at the borders of a block of video data (e.g., in a picture, slice, tile and the like). The described methods may be applied to both the existing video coding standards (e.g., High Efficiency Video Coding (HEVC)) and future video coding standards (e.g., Versatile Video Coding) or video codecs.
[0005] In one representative aspect, the disclosed technology may be used to provide a method for processing pictures. This method includes segmenting a picture into one or multiple picture segments, determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels,
selecting a second block of size K x L pixels, where (K<M and L<N) or (K<M and L<N) and the second block falls entirely within the picture segment, and processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, and wherein the processing includes splitting the second block into sub-blocks without an indication on the splitting.
[0006] In another aspect, the method for processing pictures includes segmenting a picture into one or multiple picture segments, determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels, selecting a second block of size K x L pixels, where (K<M and L<N) or ( K<M and L<N), and processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, wherein a size of the partition tree is based on a minimally allowed partition tree size or a maximally allowed partition tree depth.
[0007] In another aspect, the method for processing pictures includes parsing a bitstream representation of a picture in which the picture is coded by dividing into one or more multiple picture segments, determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels, selecting a second block of size K x L pixels, wherein (K<M and L<N) or (K<M and L<N ), and processing, using a partition tree, the border of the picture segment, wherein the processing includes splitting the second block into sub-blocks without an indication on the splitting.
[0008] In another aspect, the method for processing pictures includes parsing a bitstream representation of a picture in which the picture is coded by dividing into one or more multiple picture segments, determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels, selecting a second block of size K L pixels, wherein (K<M and L<N) or (K M and L<N), and processing, using a partition tree, the border of the picture segment, wherein a size of the partition tree is based on a minimally allowed partition tree size or a maximally allowed partition tree depth.
[0009] In another aspect, a method of processing pictures is provided to include segmenting a picture into one or more picture segments; determining that a first block comprises a first portion inside of a picture segment and a second portion outside of the picture segment; and performing a conversion between the first block and a bitstream representation of the first block
using a transform with a size not larger than the first portion.
[0010] In another aspect, a method of processing pictures is provided to include: segmenting a picture into one or more picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M c N pixels; selecting a second block of size K x L pixels, wherein (K < M and L
< N) or (K < M and L < N); and processing the border of the picture segment, and wherein different partition trees are used to process a luma component and a chroma component included in the first block.
[0011] In another aspect, a method of processing pictures is provided to include: segmenting a picture into one or more picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels; selecting a second block of size K x L pixels, wherein (K < M and L
< N) or (K < M and L < N); and processing the border of the picture segment, and wherein a same partition tree is used to process a luma component and a chroma component included in the first block.
[0012] In another aspect, a method of processing pictures is provided to comprise: selecting a first block in a first picture with M x N samples; and selecting a second block in a second picture with K x L samples, wherein K x L is unequal to M x N; and wherein the first block is processed using a partition tree split from the Mx N samples and the second block is processed using another partition tree split from the K x L samples.
[0013] In another aspect, a method of processing pictures is provided to include segmenting a picture into one or more picture segments; determining that a first block comprises a first portion inside of a picture segment and a second portion outside of the picture segment; and performing a conversion between the first block and a bitstream representation of the first block using a transform with a size not larger than the first portion.
[0014] In another aspect, a method of processing pictures is provided to include: segmenting a picture into one or more picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels; selecting a second block of size K x L pixels, wherein (K < M and L
< N) or (K < M and L < N); and processing the border of the picture segment, and wherein different partition trees are used to process a luma component and a chroma component included
in the first block.
[0015] In another aspect, a method of processing pictures is provided to include: segmenting a picture into one or more picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M c N pixels; selecting a second block of size K x L pixels, wherein (K < M and L < N) or (K < M and L < N); and processing the border of the picture segment, and wherein a same partition tree is used to process a luma component and a chroma component included in the first block.
[0016] In another aspect, a method of processing pictures is provided to comprise: selecting a first block in a first picture with M x N samples; and selecting a second block in a second picture with K x L samples, wherein K x L is unequal to M x N; and wherein the first block is processed using a partition tree split from the Mx N samples and the second block is processed using another partition tree split from the K x L samples.
[0017] In yet another representative aspect, the above-described method is embodied in the form of processor-executable code and stored in a computer-readable program medium.
[0018] In yet another representative aspect, a device that is configured or operable to perform the above-described method is disclosed. The device may include a processor that is
programmed to implement this method.
[0019] In yet another representative aspect, a video decoder apparatus may implement a method as described herein.
[0020] The above and other aspects and features of the disclosed technology are described in greater detail in the drawings, the description and the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0021] FIG. 1 shows an example block diagram of a typical High Efficiency Video Coding (HE VC) video encoder and decoder.
[0022] FIG. 2 shows examples of macroblock (MB) partitions in H.264/AVC.
[0023] FIG. 3 shows examples of splitting coding blocks (CBs) into prediction blocks (PBs).
[0024] FIGS. 4A and 4B show an example of the subdivision of a coding tree block (CTB) into CBs and transform blocks (TBs), and the corresponding quadtree, respectively.
[0025] FIG. 5 shows an example of a partition structure of one frame.
[0026] FIGS. 6A and 6B show the subdivisions and signaling methods, respectively, of a CTB highlighted in the exemplary frame in FIG. 5.
[0027] FIGS. 7A and 7B show an example of the subdivisions and a corresponding QTBT (quadtree plus binary tree) for a largest coding unit (LCU).
[0028] FIGS. 8A-8E show examples of partitioning a coding block.
[0029] FIG. 9 shows an example subdivision of a CB based on a QTBT.
[0030] FIGS. 10A-10I show examples of the partitions of a CB supported the multi-tree type (MTT), which is a generalization of the QTBT.
[0031] FIG. 11 shows an example of tree-type signaling.
[0032] FIGS. 12A-12C show examples of CTBs crossing picture borders.
[0033] FIGS. 13A-13G show examples of partitioning a CB using quadtree (QT), binary tree (BT) and ternary tree (TT) structures.
[0034] FIG. 14 shows an example of padding a coding unit (CU).
[0035] FIGS. 15A-15C show examples of subdividing a CTB that crosses a picture border.
[0036] FIGS. 16-22 show flowcharts of examples of a method for processing pictures in accordance with the presently disclosed technology.
[0037] FIG. 23 is a block diagram illustrating an example of the architecture for a computer system or other control device that can be utilized to implement various portions of the presently disclosed technology.
[0038] FIG. 24 shows a block diagram of an example embodiment of a mobile device that can be utilized to implement various portions of the presently disclosed technology.
DETAILED DESCRIPTION
[0039] Due to the increasing demand of higher resolution video, video coding methods and techniques are ubiquitous in modern technology. Video codecs typically include an electronic circuit or software that compresses or decompresses digital video, and are continually being improved to provide higher coding efficiency. A video codec converts uncompressed video to a compressed format or vice versa. There are complex relationships between the video quality, the amount of data used to represent the video (determined by the bit rate), the complexity of the encoding and decoding algorithms, sensitivity to data losses and errors, ease of editing, random access, and end-to-end delay (latency). The compressed format usually conforms to a standard
video compression specification, e.g., the High Efficiency Video Coding (HEVC) standard (also known as H.265 or MPEG-H Part 2), the Versatile Video Coding standard to be finalized, or other current and/or future video coding standards.
[0040] Embodiments of the disclosed technology may be applied to existing video coding standards (e.g., HEVC, H.265) and future standards to improve compression performance. Section headings are used in the present document to improve readability of the description and do not in any way limit the discussion or the embodiments (and/or implementations) to the respective sections only.
1. Example embodiments of picture border coding
[0041] FIG. 1 shows an example block diagram of a typical HEVC video encoder and decoder. An encoding algorithm producing an HEVC compliant bitstream would typically proceed as follows. Each picture is split into block-shaped regions, with the exact block partitioning being conveyed to the decoder. The first picture of a video sequence (and the first picture at each clean random access point into a video sequence) is coded using only intra picture prediction (that uses some prediction of data spatially from region-to-region within the same picture, but has no dependence on other pictures). For all remaining pictures of a sequence or between random access points, inter-picture temporally predictive coding modes are typically used for most blocks. The encoding process for inter-picture prediction consists of choosing motion data comprising the selected reference picture and motion vector (MV) to be applied for predicting the samples of each block. The encoder and decoder generate identical inter-picture prediction signals by applying motion compensation (MC) using the MV and mode decision data, which are transmitted as side information.
[0042] The residual signal of the intra- or inter-picture prediction, which is the difference between the original block and its prediction, is transformed by a linear spatial transform. The transform coefficients are then scaled, quantized, entropy coded, and transmitted together with the prediction information.
[0043] The encoder duplicates the decoder processing loop (see gray-shaded boxes in FIG.
1) such that both will generate identical predictions for subsequent data. Therefore, the quantized transform coefficients are constructed by inverse scaling and are then inverse transformed to duplicate the decoded approximation of the residual signal. The residual is then added to the prediction, and the result of that addition may then be fed into one or two loop filters to smooth
out artifacts induced by block-wise processing and quantization. The final picture representation (that is a duplicate of the output of the decoder) is stored in a decoded picture buffer to be used for the prediction of subsequent pictures. In general, the order of encoding or decoding processing of pictures often differs from the order in which they arrive from the source;
necessitating a distinction between the decoding order (i.e., bitstream order) and the output order (i.e., display order) for a decoder.
[0044] Video material to be encoded by HEVC is generally expected to be input as progressive scan imagery (either due to the source video originating in that format or resulting from deinterlacing prior to encoding). No explicit coding features are present in the HEVC design to support the use of interlaced scanning, as interlaced scanning is no longer used for displays and is becoming substantially less common for distribution. However, a metadata syntax has been provided in HEVC to allow an encoder to indicate that interlace-scanned video has been sent by coding each field (i.e., the even or odd numbered lines of each video frame) of interlaced video as a separate picture or that it has been sent by coding each interlaced frame as an HEVC coded picture. This provides an efficient method of coding interlaced video without burdening decoders with a need to support a special decoding process for it.
1.1. Examples of partition tree structures in H.264/AVC
[0045] The core of the coding layer in previous standards was the macroblock, containing a 16x 16 block of luma samples and, in the usual case of 4:2:0 color sampling, two corresponding 8x8 blocks of chroma samples.
[0046] An intra-coded block uses spatial prediction to exploit spatial correlation among pixels. Two partitions are defined: 16x16 and 4x4.
[0047] An inter-coded block uses temporal prediction, instead of spatial prediction, by estimating motion among pictures. Motion can be estimated independently for either 16x16 macroblock or any of its sub-macroblock partitions: 16x8, 8x16, 8x8, 8x4, 4x8, 4x4, as shown in FIG. 2. Only one motion vector (MV) per sub-macroblock partition is allowed.
1.2 Examples of partition tree structures in HEVC
[0048] In HEVC, a coding tree unit (CTU) is split into coding units (CUs) by using a quadtree structure denoted as coding tree 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. Each CU can be further split into one, two or four prediction units (PUs)
according to the PU splitting type. Inside one PU, the same prediction process is applied and the relevant information is transmitted to the decoder on a PU basis. After obtaining the residual block by applying the prediction process based on the PU splitting type, a CU can be partitioned into transform units (TUs) according to another quadtree structure similar to the coding tree for the CU. One of key feature of the HEVC structure is that it has the multiple partition conceptions including CU, PU, and TU.
[0049] Certain features involved in hybrid video coding using HEVC include:
[0050] ( 1 ) Coding tree units (CTOs') and coding tree block tCTB) structure: The analogous structure in HEVC is the coding tree unit (CTU), which has a size selected by the encoder and can be larger than a traditional macroblock. The CTU consists of a luma CTB and the corresponding chroma CTBs and syntax elements. The size L*L of a luma CTB can be chosen as L = 16, 32, or 64 samples, with the larger sizes typically enabling better compression. HEVC then supports a partitioning of the CTBs into smaller blocks using a tree structure and quadtree-like signaling.
[0051] (2) Coding units (CUsj and coding blocks (CBsT The quadtree syntax of the CTU specifies the size and positions of its luma and chroma CBs. The root of the quadtree is associated with the CTU. Hence, the size of the luma CTB is the largest supported size for a luma CB. The splitting of a CTU into luma and chroma CBs is signaled jointly. One luma CB and ordinarily two chroma CBs, together with associated syntax, form a coding unit (CU). A CTB may contain only one CU or may be split to form multiple CUs, and each CU has an associated partitioning into prediction units (PUs) and a tree of transform units (TUs).
[0052] (3) Prediction units and prediction blocks (PBsj: The decision whether to code a picture area using inter picture or intra picture prediction is made at the CU level. A PU partitioning structure has its root at the CU level. Depending on the basic prediction-type decision, the luma and chroma CBs can then be further split in size and predicted from luma and chroma prediction blocks (PBs). HEVC supports variable PB sizes from 64x64 down to 4x4 samples. FIG. 3 shows examples of allowed PBs for an MxM CU.
[0053] (4) Transform units (Tusj and transform blocks: The prediction residual is coded using block transforms. A TU tree structure has its root at the CU level. The luma CB residual may be identical to the luma transform block (TB) or may be further split into smaller luma TBs. The same applies to the chroma TBs. Integer basis functions similar to those of a discrete cosine
transform (DCT) are defined for the square TB sizes 4x4, 8x8, 16x16, and 32x32. For the 4x4 transform of luma intra picture prediction residuals, an integer transform derived from a form of discrete sine transform (DST) is alternatively specified.
1.2.1. Examples of tree-structured partitioning into TBs and TUs
[0054] For residual coding, a CB can be recursively partitioned into transform blocks (TBs). The partitioning is signaled by a residual quadtree. Only square CB and TB partitioning is specified, where a block can be recursively split into quadrants, as illustrated in FIG. 4. For a given luma CB of size MxM, a flag signals whether it is split into four blocks of size M/2xM/2. If further splitting is possible, as signaled by a maximum depth of the residual quadtree indicated in the SPS, each quadrant is assigned a flag that indicates whether it is split into four quadrants. The leaf node blocks resulting from the residual quadtree are the transform blocks that are further processed by transform coding. The encoder indicates the maximum and minimum luma TB sizes that it will use. Splitting is implicit when the CB size is larger than the maximum TB size. Not splitting is implicit when splitting would result in a luma TB size smaller than the indicated minimum. The chroma TB size is half the luma TB size in each dimension, except when the luma TB size is 4x4, in which case a single 4x4 chroma TB is used for the region covered by four 4x4 luma TBs. In the case of intra-picture-predicted CUs, the decoded samples of the nearest-neighboring TBs (within or outside the CB) are used as reference data for intra picture prediction.
[0055] In contrast to previous standards, the HEVC design allows a TB to span across multiple PBs for inter-picture predicted CUs to maximize the potential coding efficiency benefits of the quadtree-structured TB partitioning.
1.2.2. Examples of picture border coding
[0056] The borders of the picture are defined in units of the minimally allowed luma CB size. As a result, at the right and bottom borders of the picture, some CTUs may cover regions that are partly outside the borders of the picture. This condition is detected by the decoder, and the CTU quadtree is implicitly split as necessary to reduce the CB size to the point where the entire CB will fit into the picture.
[0057] FIG. 5 shows an example of a partition structure of one frame, with a resolution of 416x240 pixels and dimensions 7 CTBs x 4 CTBs, wherein the size of a CTB is 64x64. As shown in FIG. 5, the CTBs that are partially outside the right and bottom border have implied
splits (dashed lines, indicated as 502), and the CUs that fall outside completely are simply skipped (not coded).
[0058] In the example shown in FIG. 5, the highlighted CTB (504), with row CTB index equal to 2 and column CTB index equal to 3, has 64x48 pixels within the current picture, and doesn’t fit a 64x64 CTB. Therefore, it is forced to be split to 32x32 without the split flag signaled. For the top-left 32x32, it is fully covered by the frame. When it chooses to be coded in smaller blocks (8x8 for the top-left 16x16, and the remaining are coded in 16x16) according to rate-distortion cost, several split flags need to be coded. These split flags (one for whether split the top-left 32x32 to four 16x16 blocks, and flags for signaling whether one 16x16 is further split and 8x8 is further split for each of the four 8x8 blocks within the top-left 16x16) have to be explicitly signaled. A similar situation exists for the top-right 32x32 block. For the two bottom 32x32 blocks, since they are partially outside the picture border (506), further QT split needs to be applied without being signaled. FIGS. 6A and 6B show the subdivisions and signaling methods, respectively, of the highlighted CTB (504) in FIG. 5.
1.2.3. Examples of CTB size indications
[0059] An example RBSP (raw byte sequence payload) syntax table for the general sequence parameter set is shown in Table 1.
Table 1 : RBSP syntax structure
[0060] The corresponding semantics includes:
[0061] log2_min_luma_coding_block_size_minus3 plus 3 specifies the minimum luma coding block size; and
[0062] log2_diff_max_min_luma_coding_block_size specifies the difference between the maximum and minimum luma coding block size.
[0063] The variables MinCbLog2SizeY, CtbLog2SizeY, MinCbSizeY, CtbSizeY,
PicWidthlnMinCbsY, PicWidthlnCtbsY, PicHeightlnMinCbsY, PicHeightlnCtbsY,
PicSizelnMinCbsY, PicSizelnCtbsY, PicSizelnSamplesY, PicWidthlnSamplesC and
PicHeightlnSamplesC are derived as follows:
[0064] MinCbLog2SizeY = log2_min_luma_coding_block_size_minus3 + 3
[0065] CtbLog2SizeY = MinCbLog2SizeY + log2_diff_max_min_luma_coding_block_size [0066] MinCbSizeY = 1 « MmCbLog2SizeY
[0067] CtbSizeY = 1 « CtbLog2SizeY
[0068] PicWidthlnMinCbsY = pic width in luma samples / MinCbSizeY
[0069] PicWidthlnCtbsY = Ceil( pic width in luma samples ÷ CtbSizeY )
[0070] PicHeightlnMinCbsY = pic height in luma samples / MinCbSizeY
[0071] PicHeightlnCtbsY = Ceil( pic height in luma samples ÷ CtbSizeY )
[0072] PicSizelnMinCbsY = PicWidthlnMinCbsY * PicHeightlnMinCbsY
[0073] PicSizelnCtbsY = PicWidthlnCtbsY * PicHeightlnCtbsY
[0074] PicSizelnSamplesY = pic width in luma samples * pic height in luma samples [0075] PicWidthlnSamplesC = pic width in luma samples / SubWidthC
[0076] PicHeightlnSamplesC = pic height in luma samples / SubHeightC
[0077] The variables CtbWidthC and CtbHeightC, which specify the width and height, respectively, of the array for each chroma CTB, are derived as follows:
[0078] If chroma format idc is equal to 0 (monochrome) or separate_colour_plane_flag is equal to 1, CtbWidthC and CtbHeightC are both equal to 0;
[0079] Otherwise, CtbWidthC and CtbHeightC are derived as follows:
[0080] CtbWidthC = CtbSizeY / SubWidthC
[0081] CtbHeightC = CtbSizeY / SubHeightC
1.3. Examples of quadtree plus binary tree block structures with larger CTUs in JEM
[0082] In some embodiments, future video coding technologies are explored using a reference software known as the Joint Exploration Model (JEM). In addition to binary tree structures, JEM describes quadtree plus binary tree (QTBT) and ternary tree (TT) structures.
1.3.1. Examples of the QTBT block partitioning structure
[0083] In contrast to HEVC, the QTBT structure removes the concepts of multiple partition types, i.e. it removes the separation of the CU, PU and TU concepts, and supports more flexibility for CU partition shapes. In the QTBT block structure, a CU can have either a square or rectangular shape. As shown in FIG. 7A, a coding tree unit (CTU) is first partitioned by a quadtree structure. The quadtree leaf nodes are further partitioned by a binary tree structure.
There are two splitting types, symmetric horizontal splitting and symmetric vertical splitting, in the binary tree splitting. The binary tree leaf nodes are called coding units (CUs), and that segmentation is used for prediction and transform processing without any further partitioning. This means that the CU, PU and TU have the same block size in the QTBT coding block structure. In the JEM, a CU sometimes consists of coding blocks (CBs) of different colour components, e.g. one CU contains one luma CB and two chroma CBs in the case of P and B slices of the 4:2:0 chroma format and sometimes consists of a CB of a single component, e.g., one CU contains only one luma CB or just two chroma CBs in the case of I slices.
[0084] The following parameters are defined for the QTBT partitioning scheme:
[0085] — CTU size: the root node size of a quadtree, the same concept as in HEVC
[0086] — MinQTSize : the minimally allowed quadtree leaf node size
[0087] — MaxBTSize : the maximally allowed binary tree root node size
[0088] — MaxBTDepth: the maximally allowed binary tree depth
[0089] — MinBTSize : the minimally allowed binary tree leaf node size
[0090] In one example of the QTBT partitioning structure, the CTU size is set as 128x 128 luma samples with two corresponding 64x64 blocks of chroma samples, theMinQTSize is set as 16x 16, t e MaxBTSize is set as 64x64, the MinBTSize (for both width and height) is set as 4x4, and the MaxBTDepth is set as 4. The quadtree partitioning is applied to the CTU first to generate quadtree leaf nodes. The quadtree leaf nodes may have a size from 16x 16 (i.e., the MinQTSize) to 128x128 (i.e., the CTU size). If the leaf quadtree node is 128x 128, it will not be further split by the binary tree since the size exceeds the MaxBTSize (i.e., 64x64). Otherwise, the leaf quadtree node could be further partitioned by the binary tree. Therefore, the quadtree leaf node is also the root node for the binary tree and it has the binary tree depth as 0. When the binary tree depth reaches MaxBTDepth (i.e., 4), no further splitting is considered. When the binary tree node has width equal to MinBTSize (i.e., 4), no further horizontal splitting is considered. Similarly, when the binary tree node has height equal to MinBTSize, no further vertical splitting is
considered. The leaf nodes of the binary tree are further processed by prediction and transform processing without any further partitioning. In the JEM, the maximum CTU size is 256x256 luma samples.
[0091] FIG. 7A shows an example of block partitioning by using QTBT, and FIG. 7B shows the corresponding tree representation. The solid lines indicate quadtree splitting and dotted lines indicate binary tree splitting. In each splitting (i.e., non-leaf) node of the binary tree, one flag is signalled to indicate which splitting type (i.e., horizontal or vertical) is used, where 0 indicates horizontal splitting and 1 indicates vertical splitting. For the quadtree splitting, there is no need to indicate the splitting type since quadtree splitting always splits a block both horizontally and vertically to produce 4 sub-blocks with an equal size.
[0092] In addition, the QTBT scheme supports the ability for the luma and chroma to have a separate QTBT structure. Currently, for P and B slices, the luma and chroma CTBs in one CTU share the same QTBT structure. However, for I slices, the luma CTB is partitioned into CUs by a QTBT structure, and the chroma CTBs are partitioned into chroma CUs by another QTBT structure. This means that a CU in an I slice consists of a coding block of the luma component or coding blocks of two chroma components, and a CU in a P or B slice consists of coding blocks of all three colour components.
[0093] In HEVC, inter prediction for small blocks is restricted to reduce the memory access of motion compensation, such that bi-prediction is not supported for 4x8 and 8x4 blocks, and inter prediction is not supported for 4x4 blocks. In the QTBT of the JEM, these restrictions are removed.
1.4. Ternary-tree (TT) for Versatile Video Coding (WC)
[0094] FIG. 8 A shows an example of quad-tree (QT) partitioning, and FIGS. 8B and 8C show examples of the vertical and horizontal binary-tree (BT) partitioning, respectively. In some embodiments, and in addition to quad-trees and binary-trees, ternary tree (TT) partitions, e.g., horizontal and vertical center-side ternary- trees (as shown in FIGS. 8D and 8E) are supported.
[0095] In some implementations, two levels of trees are supported: region tree (quad-tree) and prediction tree (binary-tree or ternary-tree). A CTU is firstly partitioned by region tree (RT). A RT leaf may be further split with prediction tree (PT). A PT leaf may also be further split with PT until max PT depth is reached. A PT leaf is the basic coding unit. It is still called CU for convenience. A CU cannot be further split. Prediction and transform are both applied on CU in
the same way as JEM. The whole partition structure is named‘multiple-type-tree’.
1.5. Examples of partitioning structures in alternate video coding technologies
[0096] In some embodiments, a tree structure called a Multi-Tree Type (MTT), which is a generalization of the QTBT, is supported. In QTBT, as shown in FIG. 9, a Coding Tree Unit (CTU) is firstly partitioned by a quad-tree structure. The quad-tree leaf nodes are further partitioned by a binary-tree structure.
[0097] The structure of the MTT constitutes of two types of tree nodes: Region Tree (RT) and Prediction Tree (PT), supporting nine types of partitions, as shown in FIG. 10. A region tree can recursively split a CTU into square blocks down to a 4x4 size region tree leaf node. At each node in a region tree, a prediction tree can be formed from one of three tree types: Binary Tree, Ternary Tree, and Asymmetric Binary Tree. In a PT split, it is prohibited to have a quadtree partition in branches of the prediction tree. As in JEM, the luma tree and the chroma tree are separated in I slices.
[0098] In general, RT signaling is same as QT signaling in JEM with exception of the context derivation. For PT signaling, up to 4 additional bins are required, as shown in FIG. 11. The first bin indicates whether the PT is further split or not. The context for this bin is calculated based on the observation that the likelihood of further split is highly correlated to the relative size of the current block to its neighbors. If PT is further split, the second bin indicates whether it is a horizontal partitioning or vertical partitioning. In some embodiments, the presence of the center sided triple tree and the asymmetric binary trees (ABTs) increase the occurrence of“tall” or “wide” blocks. The third bin indicates the tree-type of the partition, i.e., whether it is a binary- tree/triple-tree, or an asymmetric binary tree. In case of a binary-tree/triple-tree, the fourth bin indicates the type of the tree. In case of asymmetric binary trees, the four bin indicates up or down type for horizontally partitioned trees and right or left type for vertically partitioned trees. 1.5.1. Examples of restrictions at picture borders
[0099] In some embodiments, if the CTB/LCU size is indicated by M x N (typically M is equal to N, as defined in HEVC/JEM), and for a CTB located at picture (or tile or slice or other kinds of types) border, K x L samples are within picture border.
[00100] The CU splitting rules on the picture bottom and right borders may apply to any of the coding tree configuration QTBT+TT, QTBT+ABT or QTBT+TT+ABT. They include the two following aspects:
[00101] (1) If a part of a given Coding Tree node (CU) is partially located outside the picture, then the binary symmetric splitting of the CU is always allowed, along the concerned border direction (horizontal split orientation along bottom border, as shown in FIG. 12 A, vertical split orientation along right border, as shown in FIG. 12B). If the bottom-right corner of the current CU is outside the frame (as depicted in FIG. 12C), then only the quad-tree splitting of the CU is allowed. In addition, if the current binary tree depth is greater than the maximum binary tree depth and current CU is on the frame border, then the binary split is enabled to ensure the frame border is reached.
[00102] (2) With respect to the ternary tree splitting process, the ternary tree split is allowed in case the first or the second border between resulting sub-CU exactly lies on the border of the picture. The asymmetric binary tree splitting is allowed if a splitting line (border between two sub-CU resulting from the split) exactly matches the picture border.
2. Examples of existing implementations for picture border coding
[00103] Existing implementations handle frame/picture border when the CTB size is typically 64x64. However, existing implementations are not well suited to future video coding standards in which the CTB size may be 128x128 or even 256x256.
[00104] In one example, the HEVC design has avoided several bits for splitting flags when one block (partition) is outside picture borders. However, the forced quad-tree partitioning is used for border CTUs, which is not efficient. It may require several bits on signaling the mode/residual/motion information even two neighboring square partitions may prefer to be coded together.
[00105] In another example, when multiple types of partition structures are allowed, existing implementations (1) only allow split directions which are in parallel to the picture border the block extents over, and (2) restrict several partition patterns according to whether the
right/bottom end of a block is outside the picture border. However, it should be noted that the splitting still starts from the whole CTB which is unreasonable due to the unavailable samples which are outside of picture border.
3. Example methods for picture border coding based on the disclosed technology
[00106] Embodiments of the presently disclosed technology overcome the drawbacks of existing implementations, thereby providing video coding with higher efficiencies. Methods for picture border coding differentiate between CTBs or CBs on picture/tile/slice borders or
boundaries (referred to as cross-CTBs or cross-CBs) which have samples outside of picture/tile/slice or other kinds of types borders or boundaries, and normal CTBs or CBs (with all samples within border).
[00107] For example, assume the CTB/LCU size is indicated by M*N (typically M is equal to N, as defined in HEVC/JEM), and for a CTB located at picture (or tile or slice or other kinds of types, in the invention below, picture border is taken as an example) border, a cross-CTB size is denoted by K L (K < M and L < N, but it is not permissible to have both K=M and L=N) wherein K columns and L rows of samples are within the picture border(s). Similarly, it may be assumed that a cross-CB size is denoted by K / L, and the size of the CB if it is not at the border is denoted by M*N, then K columns and L rows of samples are within the picture border.
[00108] The use of picture border coding to improve video coding efficiency and enhance both existing and future video coding standards is elucidated in the following examples described for various implementations. The examples of the disclosed technology provided below explain general concepts, and are not meant to be interpreted as limiting. In an example, unless explicitly indicated to the contrary, the various features described in these example may be combined. In another example, the various features described in these examples may be applied to other flexible and efficient partitioning techniques for video coding (e.g., using extended quadtrees (EQT) or flexible trees (FT)).
[00109] Example 1. A split of one K L cross-CTB is done automatically without being signaled wherein two or three partitions may be obtained based on the size relationship compared to the normal CTB.
[00110] (a) In one example, if K is equal to M, two partitions are split without being signaled and one partition contains more/equal samples than the other partition. As shown in FIG. 15A, one partition size is set to K / L0 and the other one is set to Kx(L- L0).
[00111] (i) In one example, L0 is set to the maximally allowed value wherein K x
L0 is allowed. Alternatively, L0 is set to the maximally allowed value wherein K x L0 and K x (L-L0) are both allowed.
[00112] (ii) In one example, the larger partition size is set to (1 <<a) wherein a satisfies (1 « a) <= K and (1 « (ci+ \ )) > K. Alternatively, furthermore, (1 « a) x Y or Y x (1 « a) is allowed in current picture/slice/tile etc. a is an integer.
[00113] (iii) The other partition size is set to M x (L— (l« a)).
[00114] (b) In one example, if L is equal to N, two partitions are split without being signaled and one partition contains more/equal samples compared to the other one. As shown in FIG. 15B, one partition size is set to K0 x L and the other one is set to (K-KO) x L.
[00115] (i) In one example, K0 is set to the maximally allowed value (e.g., pre defined or signaled in the bistream) wherein K0 x L is allowed. Alternatively, K0 is set to the maximally allowed value wherein K0 x L and (K - K0) x L are both allowed.
[00116] (ii) In one example, the larger partition size is set to (l«/>) wherein b satisfies (1 « b ) <= L and (1 « (b+ \ )) > L. Alternatively, furthermore, (1 « b) x Y or Y x (1 « b) is allowed in current picture/slice/tile etc. b is an integer.
[00117] (iii) The other partition size is set to (K - (l« b )) x N.
[00118] (c) Alternatively, furthermore, the two partitions may be placed from top-to- bottom when K is equal to M or K is larger than L; and/or the two partitions may be placed from left-to-right when L is equal to N or L is larger than K.
[00119] (d) Three partitions may apply, for example, when both K is unequal to M and L is unequal to N.
[00120] Example 2 The splitting may automatically terminate if the size of a node reaches a minimally allowed partition tree size. Alternatively, the splitting may automatically terminate if depth value of a partition tree reaches the maximally allowed depth.
[00121] Example 3 For blocks lying across picture borders, a smaller transform can be applied in order to fit the distribution of the residual data more closely. In one example, an 8x4 block may be used for the bottom of the picture while only top two sample rows remain within the picture, an 8x2 transform instead of 8x4 can be used. In one example, an 64x64 block may be used for the bottom of the picture while only top 48 sample rows remain within the picture, an 64x48 instead of 64x64 transform can be used.
[00122] Example 4 Luma and chroma components may use the same rule to handle the cross- CTBs. Alternatively, luma and chroma may be treated separately considering chroma components may prefer larger partitions.
[00123] Example 5 A set of allowed CTU or CU sizes (including square and/or non-square CTBs/CBs) may be utilized for a sequence/picture/slice/tile etc. In one example, furthermore, indices of allowed CTU sizes may be signaled.
[00124] Example 6 Note that with a certain partitioning type, the resulting partition may have
size which is not aligned with the supported transforms, and the option of transform skip should be provided when such case occurs. In other words, when the partition size is not aligned with the supported transform, processing based on the transform skip mode may be performed without being signaled.
[00125] Example 7 When K*L is an allowed CTB or CU size (e.g., 64x48 is allowed when 64x64 is the CTB), tree partitions start from the K L block instead of MxN block covering the KxL block. For example, K*L is set to be the CTB or CB instead of using MxN samples, the depth/level values for all kinds of partition trees are set to 0.
[00126] (a) The contexts used in arithmetic coding (such as CABAC) of partitioning structures follow the way for coding normal CTBs or CBs.
[00127] (b) In one example, in this case, all the allowed partitions for normal CTBs or
CBs (e.g., QT, BT, TT and/or other partitions) are still valid. That is, the signaling is kept unchanged.
[00128] (i) In one example, when QT is chosen for a XxY block, it is split to four partitions with size equal to X/2xY/2.
[00129] (ii) Alternatively, EQT or other partition trees may be used to replace QT.
[00130] (iii) Alternatively, it may be split into four/three/two partitions. However, the partition sizes may depend on the block size. Some examples of partitioning for the
QT/BT/TT (i.e., four/two/three/ partitions) structures are shown in FIGS. 13A-13G.
[00131] 1. Four sub-level CUs under the QT partition may be defined as:
M/2xN/2, (K - M/2)xN/2, M/2x(F - N/2), (K - M/2)x(F - N/2).
[00132] 2. Alternatively, four sub-level CUs under the QT partition may be defined as: M/2xF/2, M/2xF/2, (K - M/2)xF/2, (K - M/2)xF/2. In one example, such a partition may be enabled when F is equal to N.
[00133] 3. Alternatively, sub-level CUs under the QT partition may be defined as: K/2xN/2, K/2xN/2, K/2x(F - N/2), K/2x(F - N/2). In one example, such a partition may be enabled when K is equal to M.
[00134] 4. Sub-level CUs in BT may be defined as: M/2xF, (K-M/2)xF.
[00135] 5. Sub-level CUs in BT may be defined as: KxN/2, Kx(F-N/2).
[00136] 6. Sub-level CUs in TT may be defined as: M/4xF, M/2xF, (K-
3M/4)xF.
[00137] 7. Sub-level CUs in TT may be defined as: KxN/4, KxN/2, Kx(L-
3N/4).
[00138] (c) Alternatively, only a subset of partitions applied to normal CTBs/CBs are allowed for cross-CTBs/CBs. In this case, the indications of disallowed partitions are not transmitted.
[00139] (i) In one example, horizontal splitting methods (the split sub-block has a larger width compared to height) may be applied if K/L is larger than a first threshold and/or vertical splitting methods (the split sub-block has a larger height compared to width) may be applied if L/K is larger than a second threshold.
[00140] (ii) In one example, QT is not allowed if max (K, L)/min(K, L) is larger than a third threshold.
[00141] (iii) Alternatively, QT is not allowed if either K is equal to M, and/or L is equal to N (as shown in FIGS. 12A and 12B). QT is not allowed if either K is less than M, and/or L is less than N.
[00142] (iv) The first/second/third thresholds may be pre-defined or signaled in the bitstreams, such as signaled in sequence parameter set/picture parameter set/slice header etc. In one example, the three thresholds are set to 1.
[00143] (d) The maximally and/or minimally allowed partition tree depths for cross-CTBs are shared with normal CTBs.
[00144] (e) Alternatively, the maximally and/or minimally allowed partition tree depths are set differently compared to those used for normal CTBs. In one example, the maximally allowed partition tree depths for cross-CTBs may be reduced.
[00145] Example 8 When KxL is not an allowed CU size (e.g., 8 x 4 is disallowed when 256x256 is the CTB and minimally allowed BT size is 16x8; or 14 x 18), padding is applied to the KxL block to modify it to K’ xL’ wherein K’ xL’ is the allowed CU size.
[00146] (a) In one example, both width and height are padded. Alternatively, only one side
(either width or height) is padded to the smallest K’ (or L’) when K’ xK’ or L’ xL’ is one of the allowed CU size.
[00147] (b) In one example, K’ xL’ may be treated in the same way as in (a).
[00148] (c) K’ is set to 2a wherein a satisfies 2" > K and 2“; < K. Alternatively, furthermore, partitions 2" x Y or Y x 2° (Y is a positive integer value) is allowed in current
picture/slice/tile etc.
[00149] (d) L’ is set to 2b wherein b satisfies 2h > L and 2/,_/ < L. Alternatively, furthermore, partitions 2b c Y or Y x 2b (Y is a positive integer value) is allowed in current picture/slice/tile etc.
[00150] (e) The existing simple padding methods (e.g., repeating outmost available samples as shown in FIG. 14) may be applied. In another example, mirrored repetition may be applied (i.e., p(K + i, L + j) = p(K - i, L - j)). In another example, any motion-compensation based pixel padding may be applied. Regular procedure of coefficient coding is applicable to the supported transform size for each dimension individually. Note that in principle, the intention for padding is to fit the padded block size to the supported transform sizes, and hence the extra coding overhead because of padding should be minimized.
[00151] (f) Alternatively, for prediction, only the original K L block should be considered, and hence the residual part in the padded region can be considered to have zero valued residuals. In addition, a filtering process can be applied to smooth the pseudo boundary between the actual samples and the padded samples, so as to reduce the cost of coding coefficients which includes contributions from the padded samples. Alternatively, transform skip may be applied to eliminate the hurdle of padding, especially when K and L are relatively small.
[00152] (g) For CTBs/CBs lying across picture borders, coefficient scan may occur by considering the entire K’ xL’ block as a scanning unit, instead of using the conventional concept of Coefficient Group (CG). Scanning orders such as zig-zag or up-right diagonal scans can be easily adapted based on the K’ xL’ block size.
[00153] Example 9 In one example, if KxL (or reshaped KxL) is an available transform shape, K x L boundary block is considered as a valid CU, and is coded the same as other leaf CU nodes in partition trees.
[00154] The examples described above may be incorporated in the context of the methods described below, e.g., methods 1600-1900, which may be implemented at a video decoder and/or video encoder.
[00155] FIG. 16 shows a flowchart of an exemplary method for processing pictures. The method 1600 includes, at step 1610, segmenting a picture into one or more multiple picture segments.
[00156] The method 1600 includes, at step 1620, determining that a first block, of sizeM x N
pixels, of a picture segment covers at least one region that is outside a border of the picture segment.
[00157] The method 1600 includes, at step 1630, selecting a second block of size K x L pixels, where (K<M and L<N) or ( K<M and L<N), wherein the second block falls entirely within the picture segment.
[00158] The method 1600 includes, at step 1640, processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block and wherein the processing includes splitting the second block into sub-blocks without an indication of the splitting.
[00159] FIG. 17 shows a flowchart of another exemplary method for processing pictures. This flowchart includes some features and/or steps that are similar to those shown in FIG. 16 and described above. At least some of these features and/or steps may not be separately described in this section.
[00160] The method 1700 includes, at step 1710, segmenting a picture into one or more multiple picture segments.
[00161] The method 1700 includes, at step 1720, determining that a first block, of sizeM x N pixels, of a picture segment covers at least one region that is outside a border of the picture segment.
[00162] The method 1700 includes, at step 1730, selecting a second block of size K L pixels, wherein (K<M and N) or (K M and <N).
[00163] The method 1700 includes, at step 1740, processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the third block and wherein a size of the partition tree is based on minimally allowed partition tree size or a maximally allowed partition tree depth.
[00164] At step 1640 and 1740 of FIGS. 16 and 17, the processing may comprise encoding the picture into a bitstream representation based on the partition tree.
[00165] FIG. 18 shows a flowchart of an exemplary method for processing pictures. The method 1800 includes, at step 1810, parsing a bitstream representation of a picture in which the picture is coded by dividing into one or more multiple picture segments.
[00166] The method 1800 includes, at step 1820, determining that a first block, of sizeM x N pixels, of a picture segment covers at least one region that is outside a border of the picture
segment.
[00167] The method 1800 includes, at step 1830, selecting a second block of size K x L pixels, where (K^M and N) or (K<M and L<N).
[00168] The method 1800 includes, at step 1840, processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block and wherein the processing includes splitting the second block into sub-blocks without an indication of the splitting.
[00169] FIG. 19 shows a flowchart of another exemplary method for processing pictures. This flowchart includes some features and/or steps that are similar to those shown in FIG. 16 and described above. At least some of these features and/or steps may not be separately described in this section.
[00170] The method 1900 includes, at step 1910, parsing a bitstream representation of a picture in which the picture is coded by dividing into multiple picture segments.
[00171] The method 1900 includes, at step 1920, determining that a first block, of sizeM x N pixels, of a picture segment covers at least one region that is outside a border of the picture segment.
[00172] The method 1900 includes, at step 1930, selecting a second block of size K L pixels, wherein (K<M and N) or (K M and <N).
[00173] The method 1900 includes, at step 1940, processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the third block and wherein a size of the partition tree is based on minimally allowed partition tree size or a maximally allowed partition tree depth.
[00174] FIG. 20 shows a flowchart of another exemplary method for processing pictures.
[00175] The method 2000 includes, at step 2010, segmenting a picture into one or more picture segments.
[00176] The method 2000 includes, at step 2020, determining that a first block comprises a first portion inside of a picture segment and a second portion outside of the picture segment.
[00177] The method 2000 includes, at step 2030, performing a conversion between the first block and a bitstream representation of the first block using a transform with a size not larger than the first portion.
[00178] FIG. 21 shows a flowchart of another exemplary method for processing pictures.
[00179] The method 2100 includes, at step 2110, segmenting a picture into one or more picture segments.
[00180] The method 2100 includes, at step 2120, determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x JV pixels.
[00181] The method 2100 includes, at step 2130, selecting a second block of size K x L pixels, wherein (K < M and L < N) or (K < M and L < N).
[00182] The method 2100 includes, at step 2140, processing the border of the picture segment, wherein different partition trees are used to process a luma component and a chroma component included in the first block.
[00183] FIG. 22 shows a flowchart of another exemplary method for processing pictures.
[00184] The method 2200 includes, at step 2210, segmenting a picture into one or more picture segments.
[00185] The method 2200 includes, at step 2220, determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels.
[00186] The method 2200 includes, at step 2230, selecting a second block of size K L pixels, wherein (K < M and L < N) or (K < M and L < N).
[00187] The method 2200 includes, at step 2240, processing the border of the picture segment, wherein a same partition tree is used to process a luma component and a chroma component included in the first block.
[00188] In the flowcharts in FIGS. 16-22, the processing may comprise decoding a bitstream representation based on the partition tree to generate pixel values of the picture.
[00189] The methods shown in FIGS. 16-22 can be implemented in various manners to include following modifications/variations. In some implementations, the second block satisfies at least one of the conditions (i) that the second block falls entirely within the picture segment,
(ii) that the second block has a size that is backward compatible with a video coding standard, and (iii) that the second block is used as a largest coding unit, a leaf coding block or a coding tree block. In some embodiments, backward compatibility may be defined as those transform or coding block sizes that are allowed for M*N blocks (e.g., sizes allowed for CTUs that are fully located within the picture, slice, or tile borders). In other embodiments, backward compatibility
may be defined as operating seamlessly with existing video coding standards that include, but are not limited to, the H.264/AVC (Advanced Video Coding) standard, the H.265/HE VC (High Efficiency Video Coding) standard, or the Scalable HEVC (SHVC) standard.
[00190] In some embodiments, the processing includes using context-adaptive binary adaptive coding (CAB AC). In other embodiments, parameters corresponding to the partition tree may be communicated using signaling that is backward compatible with the video coding standard.
[00191] The methods 1600-2200 may further include communicating block sizes (or their corresponding indices) that are backward compatible with existing video coding standards.
[00192] In some embodiments, the method 1600-2200 may further comprise determining that the size of the second block is not backward compatible with a video coding standard. In some implementations, the method 1600-2200 may further comprise selecting a third block of size K' x L' pixels by padding one or both dimensions of the second block, wherein K <K' and L <L and wherein the size of the third block is backward compatible with the video coding standard, and wherein the third block is a largest coding unit, a leaf coding block or a coding tree block
[00193] In some embodiments, the partition tree is further based on a size of a fourth block that falls entirely within the picture segment, where the size of the fourth block is smaller than the size of the second block, where the indication of the splitting is excluded from the processing, and where a size of at least one of those sub-blocks is identical to the size of the fourth block.
[00194] The methods 1600-2200, described in the context of FIGS. 16-22, may further include the first block being a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU) or a transform unit (TU). In some embodiments, the CTU may include a luma coding tree block (CTB) and two corresponding chroma CTBs. In one example, a partition tree for the luma CTB is identical to the partition tree for at least one of the two corresponding chroma CTBs. In another example, a partition tree for the luma CTB is different from a partition tree for the corresponding chroma CTB, and the partition tree for the corresponding chroma CTB includes partitions that are larger than partitions in the partition tree for the luma CTB. In other embodiments, the partition tree based on the size of the second block is different from a partition tree based on a fifth block that falls entirely within the picture segment. In some
implementations, the picture segment is a slice or a tile.
[00195] In some embodiments, the method 1600-2200 further comprise communicating block
sizes that are backward compatible with a video coding standard. In some implementations, the method 1600-2200 further comprise communicating indices corresponding to block sizes that are backward compatible with a video coding standard. In some implementations, the video coding standard is an H.264/AVC (Advanced Video Coding) standard or an H.265/HEVC (High Efficiency Video Coding) standard.
4. Example implementations of the disclosed technology
[00196] FIG. 23 is a block diagram illustrating an example of the architecture for a computer system or other control device 2300 that can be utilized to implement various portions of the presently disclosed technology, including (but not limited to) method 1600-2200. In FIG. 23, the computer system 2300 includes one or more processors 2305 and memory 2310 connected via an interconnect 2325. The interconnect 2325 may represent any one or more separate physical buses, point to point connections, or both, connected by appropriate bridges, adapters, or controllers. The interconnect 2325, therefore, may include, for example, a system bus, a
Peripheral Component Interconnect (PCI) bus, a HyperTransport or industry standard architecture (ISA) bus, a small computer system interface (SCSI) bus, a universal serial bus (USB), IIC (I2C) bus, or an Institute of Electrical and Electronics Engineers (IEEE) standard 674 bus, sometimes referred to as“Firewire.”
[00197] The processor(s) 2305 may include central processing units (CPUs) to control the overall operation of, for example, the host computer. In certain embodiments, the processor(s) 2305 accomplish this by executing software or firmware stored in memory 2310. The processor(s) 2305 may be, or may include, one or more programmable general-purpose or special-purpose microprocessors, digital signal processors (DSPs), programmable controllers, application specific integrated circuits (ASICs), programmable logic devices (PLDs), or the like, or a combination of such devices.
[00198] The memory 2310 can be or include the main memory of the computer system. The memory 2310 represents any suitable form of random access memory (RAM), read-only memory (ROM), flash memory, or the like, or a combination of such devices. In use, the memory 2310 may contain, among other things, a set of machine instructions which, when executed by processor 2305, causes the processor 2305 to perform operations to implement embodiments of the presently disclosed technology.
[00199] Also connected to the processor(s) 2305 through the interconnect 2325 is a (optional)
network adapter 2315. The network adapter 2315 provides the computer system 2300 with the ability to communicate with remote devices, such as the storage clients, and/or other storage servers, and may be, for example, an Ethernet adapter or Fiber Channel adapter.
[00200] FIG. 24 shows a block diagram of an example embodiment of a mobile device 2100 that can be utilized to implement various portions of the presently disclosed technology, including (but not limited to) method 1600-1900. The mobile device 2400 can be a laptop, a smartphone, a tablet, a camcorder, or other types of devices that are capable of processing videos. The mobile device 2400 includes a processor or controller 2401 to process data, and memory 2402 in communication with the processor 2101 to store and/or buffer data. For example, the processor 2401 can include a central processing unit (CPU) or a microcontroller unit (MCU). In some implementations, the processor 2401 can include a field-programmable gate-array (FPGA). In some implementations, the mobile device 2400 includes or is in communication with a graphics processing unit (GPU), video processing unit (VPU) and/or wireless communications unit for various visual and/or communications data processing functions of the smartphone device. For example, the memory 2402 can include and store processor-executable code, which when executed by the processor 2401, configures the mobile device 2400 to perform various operations, e.g., such as receiving information, commands, and/or data, processing information and data, and transmitting or providing processed information/data to another device, such as an actuator or external display.
[00201] To support various functions of the mobile device 2400, the memory 2402 can store information and data, such as instructions, software, values, images, and other data processed or referenced by the processor 2401. For example, various types of Random Access Memory (RAM) devices, Read Only Memory (ROM) devices, Flash Memory devices, and other suitable storage media can be used to implement storage functions of the memory 2402. In some implementations, the mobile device 2400 includes an input/output (PO) unit 2103 to interface the processor 2401 and/or memory 2402 to other modules, units or devices. For example, the PO unit 2403 can interface the processor 2401 and memory 2402 with to utilize various types of wireless interfaces compatible with typical data communication standards, e.g., such as between the one or more computers in the cloud and the user device. In some implementations, the mobile device 2400 can interface with other devices using a wired connection via the PO unit 2403. The mobile device 2400 can also interface with other external interfaces, such as data storage, and/or
visual or audio display devices 2404, to retrieve and transfer data and information that can be processed by the processor, stored in the memory, or exhibited on an output unit of a display device 2404 or an external device. For example, the display device 2404 can display a video frame that includes a block (a CU, PU or TU) that applies the intra-block copy based on whether the block is encoded using a motion compensation algorithm, and in accordance with the disclosed technology.
[00202] In some embodiments, a video decoder apparatus may implement a method of picture border coding as described herein is used for video decoding. The various features of the method may be similar to the above-described methods 1600-2200.
[00203] In some embodiments, the video decoding methods may be implemented using a decoding apparatus that is implemented on a hardware platform as described with respect to FIG. 23 and FIG. 24.
[00204] Features and embodiments of the above-described methods/techniques are described below.
[00205] 1. A method for processing pictures, comprising: segmenting a picture into one or multiple picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels; selecting a second block of size K x L pixels, wherein ( K <Mand L < N) or (K < Mand L < N) and the second block falls entirely within the picture segment; processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, and wherein the processing includes splitting the second block into sub-blocks without an indication on the splitting.
[00206] 2. A method for processing pictures, comprising: segmenting a picture into one or multiple picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M N pixels; selecting a second block of size K x L pixels, wherein ( K <M and L < N ) or (K < M and L < N ); and processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, and wherein a size of the partition tree is based on a minimally allowed partition tree size or a maximally allowed partition tree depth.
[00207] 3. The method of clause 1 or 2, wherein the processing comprises encoding the picture into a bitstream representation based on the partition tree.
[00208] 4. A method of processing pictures, comprising: parsing a bitstream representation of a picture in which the picture is coded by dividing into one or multiple picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M c N pixels; selecting a second block of size K x L pixels, wherein ( K <M and L < N) or (K < M and L < N) and processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, and wherein the processing includes splitting the second block into sub-blocks without an indication on the splitting.
[00209] 5. A method of processing pictures, comprising: parsing a bitstream representation of a picture in which the picture is coded by dividing into multiple picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels; selecting a second block of size K x L pixels, wherein ( K < M and L A) or (K < M and L <N) and processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, and wherein a size of the partition tree is based on a minimally allowed partition tree size or a maximally allowed partition tree depth.
[00210] 6. The method of clause 4 or 5, wherein the processing comprises decoding a bitstream representation based on the partition tree to generate pixel values of the picture.
[00211] 7. The method of any one of clause 1, 2, 4 or 5, wherein the second block satisfies at least one of conditions that (i) the second block falls entirely within the picture segment, (ii) the second block has a size that is backward compatible with a video coding standard, or (iii) the second block is a largest coding unit, a leaf coding block or a coding tree block.
[00212] 8. The method of any one of clause 1, 2, 4 or 5, the method further comprises: determining that the size of the second block is not backward compatible with a video coding standard.
[00213] 9. The method of any of clause 1, 2, 4 or 5, further comprising: selecting a third block of size K' x L' pixels by padding one or both dimensions of the second block, wherein K < K' and L <L and wherein the size of the third block is backward compatible with a video coding standard, and wherein the third block is a largest coding unit, a leaf coding block or a coding tree block.
[00214] 10. The method of any of clause 1, 2, 4, or 5, wherein the partition tree is further based on a size of a fourth block, wherein the fourth block falls entirely within the picture segment,
wherein the size of the fourth block is smaller than the size of the second block, wherein the indication of the splitting is excluded from the processing, and wherein a size of at least one of the sub-blocks is identical to the size of the fourth block.
[00215] 11. The method of any of clause 1, 2, 4, or 5, further comprising: communicating block sizes that are backward compatible with a video coding standard.
[00216] 12. The method of any of clause 1, 2, 4, or 5, further comprising: communicating indices corresponding to block sizes that are backward compatible with a video coding standard.
[00217] 13. The method of any of clause 7, 8, 9, or 11, wherein the video coding standard is an
H.264/AVC (Advanced Video Coding) standard or an H.265/HEVC (High Efficiency Video Coding) standard or a VVC (Versatile Video Coding) standard.
[00218] 14. The method of any of clause 1, 2, 4, or 5, wherein the first block is a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), or a transform unit (TU).
[00219] 15. The method of clause 14, wherein the CTU comprises a luma coding tree block
(CTB) and two corresponding chroma CTBs.
[00220] 16. The method of clause 15, wherein a partition tree for the luma CTB is identical to the partition tree for at least one of the two corresponding chroma CTBs.
[00221] 17. The method of clause 15, wherein a partition tree for the luma CTB is different from a partition tree for the corresponding chroma CTB.
[00222] 18. The method of clause 17, wherein the partition tree for the corresponding chroma
CTB comprises partitions that are larger than partitions in the partition tree for the luma CTB.
[00223] 19. A method of processing pictures, comprising: segmenting a picture into one or more picture segments; determining that a first block comprises a first portion inside of a picture segment and a second portion outside of the picture segment; and performing a conversion between the first block and a bitstream representation of the first block using a transform with a size not larger than the first portion.
[00224] 20. The method of clause 19, wherein the first block is a coding tree block or a coding tree unit.
[00225] 21. The method of clause 19, wherein the first block is a coding unit or a coding block.
[00226] 22. The method of clause 19, wherein the size of the transform has a same height as that of the first portion of the first block.
[00227] 23. The method of clause 19, wherein the size of the transform has a same width as that
of the first portion of the first block.
[00228] 24. The method of clause 19, further comprising signaling a transform coefficient and the signaling of the transform coefficient is based on the size of the transform instead of a size of the first block.
[00229] 25. The method of clause 19, further comprising: selecting a second block; determining that the second block fully inside of the picture segment; and performing a conversion between the second block and a bitstream representation of the second block using a transform with a size equal to the size of the second block.
[00230] 26. The method of clause 25, further comprising signaling a transform coefficient for the second block and the signaling of the transform coefficient is based on the size of the second block.
[00231] 27. A method of processing pictures, comprising: segmenting a picture into one or more picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block isM x JV pixels; selecting a second block of size K x L pixels, wherein (K < M and L < N) or (K < M and L < N) and processing the border of the picture segment, and wherein different partition trees are used to process a luma component and a chroma component included in the first block.
[00232] 28. The method of clause 27, wherein a partition tree for the chroma component includes partitions that are larger than partitions in a partition tree for the luma component.
[00233] 29. A method of processing pictures, comprising: segmenting a picture into one or more picture segments; determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels; selecting a second block of size K x L pixels, wherein (K < M and L
A) or (K M and L < N) and processing the border of the picture segment, and wherein a same partition tree is used to process a luma component and a chroma component included in the first block.
[00234] 30. A method of processing pictures, comprising: selecting a first block in a first picture withM x N samples; and selecting a second block in a second picture with K x L samples, wherein K x L is unequal to M x N, and wherein the first block is processed using a partition tree split from the Mx A samples and the second block is processed using another partition tree split from the K x L samples.
[00235] 31. The method of clause 29 or 30, wherein the allowed sizes of the first and second
blocks are predefined or signalized.
[00236] 32. The method of clause 29 or 30, wherein the first block and the second block are coding tree units or coding tree block.
[00237] 33. The method of clause 29 or 30, wherein M is unequal to N.
[00238] 34. The method of clause 29 or 30, wherein M is equal to N.
[00239] 35. The method of clause 29 or 30, wherein ^ is unequal to L.
[00240] 36. The method of clause 29 or 30, wherein K is equal to L.
[00241] 37. The method of clause 30, wherein the first picture is the same as the second picture.
[00242] 38. The method of clause 30, wherein the first picture is different the second picture.
[00243] 39. The method of any of previous clauses, wherein the partition tree based on the size of the second block is different from a partition tree based on a fifth block that falls entirely within the picture segment.
[00244] 40. The method of any of previous clauses, wherein the picture segment is a slice or a tile.
[00245] 41. An apparatus in a video system comprising a processor and a non-transitory memory with instructions thereon, wherein the instructions upon execution by the processor, cause the processor to implement the method in any one of clauses 1 to 40.
[00246] 42. A computer program product stored on a non-transitory computer readable media, the computer program product including program code for carrying out the method in any one of clauses 1 to 40.
[00247] From the foregoing, it will be appreciated that specific embodiments of the presently disclosed technology have been described herein for purposes of illustration, but that various modifications may be made without deviating from the scope of the invention. Accordingly, the presently disclosed technology is not limited except as by the appended claims.
[00248] Implementations of the subject matter and the functional operations described in this patent document can be implemented in various systems, digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Implementations of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible and non-transitory computer readable medium for execution by, or to control the
operation of, data processing apparatus. The computer readable medium can be a machine- readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them. The term“data processing unit” or“data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a
programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
[00249] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code).
A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
[00250] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
[00251] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions
and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices.
Computer readable media suitable for storing computer program instructions and data include all forms of nonvolatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
[00252] It is intended that the specification, together with the drawings, be considered exemplary only, where exemplary means an example. As used herein, the singular forms“a”, “an” and“the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. Additionally, the use of“or” is intended to include“and/or”, unless the context clearly indicates otherwise.
[00253] While this patent document contains many specifics, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this patent document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple
embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
[00254] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Moreover, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all
embodiments.
[00255] Only a few implementations and examples are described and other implementations, enhancements and variations can be made based on what is described and illustrated in this
patent document.
Claims
1. A method for processing pictures, comprising:
segmenting a picture into one or multiple picture segments;
determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels;
selecting a second block of size K x L pixels, wherein (K <M and L < N) or (K < M and L <N) and the second block falls entirely within the picture segment;
processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, and
wherein the processing includes splitting the second block into sub-blocks without an indication on the splitting.
2. A method for processing pictures, comprising:
segmenting a picture into one or multiple picture segments;
determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M N pixels;
selecting a second block of size K x L pixels, wherein ( K <M and L < N ) or (K < M and L <N); and
processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, and
wherein a size of the partition tree is based on a minimally allowed partition tree size or a maximally allowed partition tree depth.
3. The method of claim 1 or 2, wherein the processing comprises encoding the picture into a bitstream representation based on the partition tree.
4. A method of processing pictures, comprising:
parsing a bitstream representation of a picture in which the picture is coded by dividing into one or multiple picture segments;
determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M c N pixels;
selecting a second block of size K x L pixels, wherein (K <M and L < N) or (K < M and L </V); and
processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, and
wherein the processing includes splitting the second block into sub-blocks without an indication on the splitting.
5. A method of processing pictures, comprising:
parsing a bitstream representation of a picture in which the picture is coded by dividing into one or more multiple picture segments;
determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels;
selecting a second block of size K L pixels, wherein ( K <M and L < N) or (K < M and L </V); and
processing, using a partition tree, the border of the picture segment, wherein the partition tree is based on the size of the second block, and
wherein a size of the partition tree is based on a minimally allowed partition tree size or a maximally allowed partition tree depth.
6. The method of claim 4 or 5, wherein the processing comprises decoding a bitstream representation based on the partition tree to generate pixel values of the picture.
7. The method of any one of claim 1, 2, 4 or 5, wherein the second block satisfies at least one of conditions that (i) the second block falls entirely within the picture segment, (ii) the second block has a size that is backward compatible with a video coding standard, or (iii) the second block is a largest coding unit, a leaf coding block or a coding tree block.
8 The method of any one of claim 1, 2, 4 or 5, the method further comprises: determining that the size of the second block is not backward compatible with a video coding standard.
9. The method of any of claim 1, 2, 4 or 5, further comprising:
selecting a third block of size K' x // pixels by padding one or both dimensions of the second block, wherein .V <K' and L <L', and wherein the size of the third block is backward compatible with a video coding standard, and wherein the third block is a largest coding unit, a leaf coding block or a coding tree block.
10. The method of any of claim 1, 2, 4, or 5, wherein the partition tree is further based on a size of a fourth block, wherein the fourth block falls entirely within the picture segment, wherein the size of the fourth block is smaller than the size of the second block, wherein the indication of the splitting is excluded from the processing, and wherein a size of at least one of the sub-blocks is identical to the size of the fourth block.
11. The method of any of claim 1, 2, 4, or 5, further comprising: communicating block sizes that are backward compatible with a video coding standard.
12. The method of any of claim 1, 2, 4, or 5, further comprising:
communicating indices corresponding to block sizes that are backward compatible with a video coding standard.
13. The method of any of claim 7, 8, 9, or 11, wherein the video coding standard is an H.264/AVC (Advanced Video Coding) standard or an H.265/HEVC (High Efficiency Video Coding) standard or a VVC (Versatile Video Coding) standard.
14. The method of any of claim 1, 2, 4, or 5, wherein the first block is a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), or a transform unit (TU).
15. The method of claim 14, wherein the CTU comprises a luma coding tree block (CTB) and two corresponding chroma CTBs.
16. The method of claim 15, wherein a partition tree for the luma CTB is identical to the partition tree for at least one of the two corresponding chroma CTBs.
17. The method of claim 15, wherein a partition tree for the luma CTB is different from a partition tree for the corresponding chroma CTB.
18. The method of claim 17, wherein the partition tree for the corresponding chroma CTB comprises partitions that are larger than partitions in the partition tree for the luma CTB.
19. A method of processing pictures, comprising:
segmenting a picture into one or more picture segments;
determining that a first block comprises a first portion inside of a picture segment and a second portion outside of the picture segment; and
performing a conversion between the first block and a bitstream representation of the first block using a transform with a size not larger than the first portion.
20. The method of claim 19, wherein the first block is a coding tree block or a coding tree unit.
21. The method of claim 19, wherein the first block is a coding unit or a coding block.
22. The method of claim 19, wherein the size of the transform has a same height as that of the first portion of the first block.
23. The method of claim 19, wherein the size of the transform has a same width as that of the first portion of the first block.
24. The method of claim 19, further comprising signaling a transform coefficient and the signaling of the transform coefficient is based on the size of the transform instead of a size of the first block.
25. The method of claim 19, further comprising:
selecting a second block;
determining that the second block fully inside of the picture segment; and
performing a conversion between the second block and a bitstream representation of the second block using a transform with a size equal to the size of the second block.
26. The method of claim 25, further comprising signaling a transform coefficient for the second block and the signaling of the transform coefficient is based on the size of the second block.
27. A method of processing pictures, comprising:
segmenting a picture into one or more picture segments;
determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M x N pixels;
selecting a second block of size K x L pixels, wherein (K <M and L A) or (K M and L </V); and
processing the border of the picture segment, and
wherein different partition trees are used to process a luma component and a chroma component included in the first block.
28. The method of claim 27, wherein a partition tree for the chroma component includes partitions that are larger than partitions in a partition tree for the luma component.
29. A method of processing pictures, comprising:
segmenting a picture into one or more picture segments;
determining that a first block of a picture segment covers at least one region that is outside a border of the picture segment, wherein a size of the first block is M N pixels;
selecting a second block of size K x L pixels, wherein ( K <M and L A) or (K M and L </V); and
processing the border of the picture segment, and
wherein a same partition tree is used to process a luma component and a chroma component included in the first block.
30. A method of processing pictures, comprising:
selecting a first block in a first picture withM x N samples; and
selecting a second block in a second picture with K x L samples, wherein K x L is unequal to M x /V, and
wherein the first block is processed using a partition tree split from the Mx JV samples and the second block is processed using another partition tree split from the K L samples.
31. The method of claim 29 or 30, wherein the allowed sizes of the first and second blocks are predefined or signalized.
32. The method of claim 29 or 30, wherein the first block and the second block are coding tree units or coding tree block.
33. The method of claim 29 or 30, wherein M is unequal to N.
34. The method of claim 29 or 30, wherein M is equal to N.
35. The method of claim 29 or 30, wherein K is unequal to L.
36. The method of claim 29 or 30, wherein K is equal to L.
37. The method of claim 30, wherein the first picture is the same as the second picture.
38. The method of claim 30, wherein the first picture is different the second picture.
39. The method of any of previous claims, wherein the partition tree based on the size of the second block is different from a partition tree based on a fifth block that falls entirely within the picture segment.
40. The method of any of previous claims, wherein the picture segment is a slice or a tile.
41. An apparatus in a video system comprising a processor and a non-transitory memory with instructions thereon, wherein the instructions upon execution by the processor, cause the processor to implement the method recited in one or more of claims 1 to 40.
42. A computer program product stored on a non-transitory computer readable media, the computer program product including program code for carrying out the method recited in one or more of claims 1 to 40.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/129,029 US11722703B2 (en) | 2018-06-21 | 2020-12-21 | Automatic partition for cross blocks |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2018092125 | 2018-06-21 | ||
| CNPCT/CN2018/092125 | 2018-06-21 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/129,029 Continuation US11722703B2 (en) | 2018-06-21 | 2020-12-21 | Automatic partition for cross blocks |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2019244115A2 true WO2019244115A2 (en) | 2019-12-26 |
| WO2019244115A3 WO2019244115A3 (en) | 2020-02-13 |
Family
ID=67847762
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IB2019/055242 Ceased WO2019244115A2 (en) | 2018-06-21 | 2019-06-21 | Automatic partition for cross blocks |
| PCT/IB2019/055243 Ceased WO2019244116A1 (en) | 2018-06-21 | 2019-06-21 | Border partition in video coding |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IB2019/055243 Ceased WO2019244116A1 (en) | 2018-06-21 | 2019-06-21 | Border partition in video coding |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US11722703B2 (en) |
| CN (2) | CN110636299B (en) |
| TW (2) | TWI725456B (en) |
| WO (2) | WO2019244115A2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11722703B2 (en) | 2018-06-21 | 2023-08-08 | Beijing Bytedance Network Technology Co., Ltd | Automatic partition for cross blocks |
Families Citing this family (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019234612A1 (en) | 2018-06-05 | 2019-12-12 | Beijing Bytedance Network Technology Co., Ltd. | Partition tree with four sub-blocks symmetric or asymmetric |
| CN118283257A (en) * | 2018-06-18 | 2024-07-02 | 交互数字Vc控股公司 | Method and apparatus for video encoding and decoding for image block-based asymmetric binary partition |
| JP7204891B2 (en) * | 2018-08-28 | 2023-01-16 | 華為技術有限公司 | Picture partitioning method and apparatus |
| CN111083484B (en) | 2018-10-22 | 2024-06-28 | 北京字节跳动网络技术有限公司 | Sub-block based prediction |
| WO2020084553A1 (en) | 2018-10-24 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Motion candidate derivation based on multiple information in sub-block motion vector prediction |
| CN111436227B (en) | 2018-11-12 | 2024-03-29 | 北京字节跳动网络技术有限公司 | Use of combined inter-intra prediction in video processing |
| WO2020103877A1 (en) | 2018-11-20 | 2020-05-28 | Beijing Bytedance Network Technology Co., Ltd. | Coding and decoding of video coding modes |
| WO2020103852A1 (en) | 2018-11-20 | 2020-05-28 | Beijing Bytedance Network Technology Co., Ltd. | Difference calculation based on patial position |
| EP3857896A4 (en) | 2018-11-22 | 2021-12-01 | Beijing Bytedance Network Technology Co. Ltd. | COORDINATION PROCEDURE FOR SUBBLOCK BASED INTERPREDICTION |
| CN114173114B (en) | 2019-01-08 | 2022-09-23 | 华为技术有限公司 | Image prediction method, device, equipment, system and storage medium |
| CN111416975B (en) * | 2019-01-08 | 2022-09-16 | 华为技术有限公司 | Prediction mode determination method and device |
| CN113366855B (en) | 2019-02-03 | 2025-06-24 | 北京字节跳动网络技术有限公司 | Asymmetric quadtree partitioning based on conditions |
| KR102635518B1 (en) | 2019-03-06 | 2024-02-07 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Use of converted single prediction candidates |
| US11677969B2 (en) * | 2019-03-22 | 2023-06-13 | Tencent America LLC | Method and apparatus for video coding |
| JP7307192B2 (en) | 2019-04-02 | 2023-07-11 | 北京字節跳動網絡技術有限公司 | Derivation of motion vectors on the decoder side |
| SG11202111530YA (en) | 2019-04-24 | 2021-11-29 | Bytedance Inc | Constraints on quantized residual differential pulse code modulation representation of coded video |
| KR102707777B1 (en) | 2019-05-01 | 2024-09-20 | 바이트댄스 아이엔씨 | Intra-coded video using quantized residual differential pulse code modulation coding |
| WO2020223615A1 (en) | 2019-05-02 | 2020-11-05 | Bytedance Inc. | Coding mode based on a coding tree structure type |
| CN113785568B (en) | 2019-05-02 | 2024-03-08 | 字节跳动有限公司 | Signaling notification in transition skip mode |
| KR102808776B1 (en) | 2019-08-13 | 2025-05-15 | 두인 비전 컴퍼니 리미티드 | Motion accuracy of sub-block-based inter prediction |
| WO2021052507A1 (en) | 2019-09-22 | 2021-03-25 | Beijing Bytedance Network Technology Co., Ltd. | Sub-picture coding and decoding of video |
| US11412222B2 (en) * | 2020-02-12 | 2022-08-09 | Tencent America LLC | Flexible picture partitioning |
| US11432018B2 (en) * | 2020-05-11 | 2022-08-30 | Tencent America LLC | Semi-decoupled partitioning for video coding |
| US11930215B2 (en) | 2020-09-29 | 2024-03-12 | Qualcomm Incorporated | Multiple neural network models for filtering during video coding |
| WO2022218322A1 (en) * | 2021-04-13 | 2022-10-20 | Beijing Bytedance Network Technology Co., Ltd. | Boundary handling for coding tree split |
| WO2025014566A1 (en) * | 2023-07-11 | 2025-01-16 | Tencent America LLC | Coding tree block partitioning |
| CN117058593B (en) * | 2023-08-30 | 2025-07-04 | 重庆大学 | Scene montage-based self-supervision video scene boundary detection method |
Family Cites Families (47)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR960013055A (en) * | 1994-09-27 | 1996-04-20 | 김광호 | Conditional Quidtree Segmentation Image Compression Method and Apparatus |
| TW366648B (en) | 1996-10-24 | 1999-08-11 | Matsushita Electric Industrial Co Ltd | Method of supplementing pixel signal coding device, and pixel signal decoding device |
| US6795504B1 (en) | 2000-06-21 | 2004-09-21 | Microsoft Corporation | Memory efficient 3-D wavelet transform for video coding without boundary effects |
| US7623682B2 (en) * | 2004-08-13 | 2009-11-24 | Samsung Electronics Co., Ltd. | Method and device for motion estimation and compensation for panorama image |
| WO2008027192A2 (en) | 2006-08-25 | 2008-03-06 | Thomson Licensing | Methods and apparatus for reduced resolution partitioning |
| US20080183328A1 (en) | 2007-01-26 | 2008-07-31 | Danelski Darin L | Laser Guided System for Picking or Sorting |
| US20090003443A1 (en) | 2007-06-26 | 2009-01-01 | Nokia Corporation | Priority-based template matching intra prediction video and image coding |
| US8503527B2 (en) | 2008-10-03 | 2013-08-06 | Qualcomm Incorporated | Video coding with large macroblocks |
| CN104869417A (en) | 2009-07-01 | 2015-08-26 | 汤姆森特许公司 | Methods and apparatus for video encoders and decoders |
| KR101452713B1 (en) * | 2009-10-30 | 2014-10-21 | 삼성전자주식회사 | Method and apparatus for encoding and decoding coding unit of picture boundary |
| RS63059B1 (en) * | 2010-04-13 | 2022-04-29 | Ge Video Compression Llc | Video coding using multi-tree sub-divisions of images |
| US8494290B2 (en) | 2011-05-05 | 2013-07-23 | Mitsubishi Electric Research Laboratories, Inc. | Method for coding pictures using hierarchical transform units |
| US9232237B2 (en) * | 2011-08-05 | 2016-01-05 | Texas Instruments Incorporated | Block-based parallel deblocking filter in video coding |
| US9948916B2 (en) | 2013-10-14 | 2018-04-17 | Qualcomm Incorporated | Three-dimensional lookup table based color gamut scalability in multi-layer video coding |
| AU2014201583A1 (en) | 2014-03-14 | 2015-10-01 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding video data using a block dictionary |
| AU2014202682A1 (en) * | 2014-05-16 | 2015-12-03 | Canon Kabushiki Kaisha | Method, apparatus and system for copying a block of video samples |
| AU2014202921B2 (en) | 2014-05-29 | 2017-02-02 | Canon Kabushiki Kaisha | Method, apparatus and system for de-blocking a block of video samples |
| JP2017537539A (en) | 2014-11-05 | 2017-12-14 | サムスン エレクトロニクス カンパニー リミテッド | Sample unit predictive coding apparatus and method |
| WO2016090568A1 (en) * | 2014-12-10 | 2016-06-16 | Mediatek Singapore Pte. Ltd. | Binary tree block partitioning structure |
| US10382795B2 (en) * | 2014-12-10 | 2019-08-13 | Mediatek Singapore Pte. Ltd. | Method of video coding using binary tree block partitioning |
| US10853757B1 (en) * | 2015-04-06 | 2020-12-01 | Position Imaging, Inc. | Video for real-time confirmation in package tracking systems |
| CN119383364A (en) | 2015-06-11 | 2025-01-28 | 杜比实验室特许公司 | Method and medium for encoding and decoding images using adaptive deblocking filtering |
| KR20180040517A (en) * | 2015-09-10 | 2018-04-20 | 삼성전자주식회사 | Video encoding and decoding method and apparatus |
| EP3363199B1 (en) | 2015-11-27 | 2021-05-19 | MediaTek Inc. | Method and apparatus of entropy coding and context modelling for video and image coding |
| US20170214937A1 (en) | 2016-01-22 | 2017-07-27 | Mediatek Inc. | Apparatus of Inter Prediction for Spherical Images and Cubic Images |
| US10455228B2 (en) * | 2016-03-21 | 2019-10-22 | Qualcomm Incorporated | Determining prediction parameters for non-square blocks in video coding |
| US10623774B2 (en) | 2016-03-22 | 2020-04-14 | Qualcomm Incorporated | Constrained block-level optimization and signaling for video coding tools |
| US10560718B2 (en) * | 2016-05-13 | 2020-02-11 | Qualcomm Incorporated | Merge candidates for motion vector prediction for video coding |
| US10567808B2 (en) * | 2016-05-25 | 2020-02-18 | Arris Enterprises Llc | Binary ternary quad tree partitioning for JVET |
| CN112689147B (en) | 2016-05-28 | 2023-10-13 | 寰发股份有限公司 | Video data processing method and device |
| US10484712B2 (en) | 2016-06-08 | 2019-11-19 | Qualcomm Incorporated | Implicit coding of reference line index used in intra prediction |
| CN109644271B (en) | 2016-09-06 | 2021-04-13 | 联发科技股份有限公司 | Method and Apparatus for Determining Candidate Sets for Binary Tree Partitioning Blocks |
| US10609423B2 (en) * | 2016-09-07 | 2020-03-31 | Qualcomm Incorporated | Tree-type coding for video coding |
| US11436553B2 (en) | 2016-09-08 | 2022-09-06 | Position Imaging, Inc. | System and method of object tracking using weight confirmation |
| AU2016231584A1 (en) | 2016-09-22 | 2018-04-05 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding video data |
| DE112016007202T5 (en) | 2016-10-04 | 2019-06-13 | Ford Motor Company | TRANSPORT TROLLEY WITH AUTOMATED HEIGHT ADJUSTMENT |
| EP3306938A1 (en) | 2016-10-05 | 2018-04-11 | Thomson Licensing | Method and apparatus for binary-tree split mode coding |
| CN116668728A (en) * | 2016-11-08 | 2023-08-29 | 株式会社Kt | Method of decoding and encoding video, method of sending compressed data |
| US10848788B2 (en) * | 2017-01-06 | 2020-11-24 | Qualcomm Incorporated | Multi-type-tree framework for video coding |
| CN107071478B (en) * | 2017-03-30 | 2019-08-20 | 成都图必优科技有限公司 | Depth map encoding method based on double-paraboloid line Partition Mask |
| CN117201820A (en) * | 2017-05-26 | 2023-12-08 | Sk电信有限公司 | Method of encoding or decoding video data and method of transmitting bitstream |
| US10728573B2 (en) * | 2017-09-08 | 2020-07-28 | Qualcomm Incorporated | Motion compensated boundary pixel padding |
| KR102514436B1 (en) | 2017-09-28 | 2023-03-27 | 삼성전자주식회사 | Image encoding method and apparatus, and image decoding method and apparatus |
| CN110636299B (en) | 2018-06-21 | 2022-06-14 | 北京字节跳动网络技术有限公司 | Method, apparatus, and computer-readable recording medium for processing video data |
| TWI841584B (en) | 2018-08-19 | 2024-05-11 | 大陸商北京字節跳動網絡技術有限公司 | Border handling for extended quadtree partitions |
| WO2020108574A1 (en) * | 2018-11-28 | 2020-06-04 | Beijing Bytedance Network Technology Co., Ltd. | Improving method for transform or quantization bypass mode |
| US11716490B2 (en) | 2020-02-06 | 2023-08-01 | Qualcomm Incorporated | Binary split at picture boundary for image and video coding |
-
2019
- 2019-06-21 CN CN201910544662.8A patent/CN110636299B/en active Active
- 2019-06-21 WO PCT/IB2019/055242 patent/WO2019244115A2/en not_active Ceased
- 2019-06-21 CN CN201910545235.1A patent/CN110636314B/en active Active
- 2019-06-21 TW TW108121832A patent/TWI725456B/en active
- 2019-06-21 TW TW108121829A patent/TWI723433B/en active
- 2019-06-21 WO PCT/IB2019/055243 patent/WO2019244116A1/en not_active Ceased
-
2020
- 2020-12-21 US US17/129,029 patent/US11722703B2/en active Active
- 2020-12-21 US US17/128,965 patent/US11765398B2/en active Active
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11722703B2 (en) | 2018-06-21 | 2023-08-08 | Beijing Bytedance Network Technology Co., Ltd | Automatic partition for cross blocks |
| US11765398B2 (en) | 2018-06-21 | 2023-09-19 | Beijing Bytedance Network Technology Co., Ltd | Border partition |
Also Published As
| Publication number | Publication date |
|---|---|
| CN110636314B (en) | 2022-09-27 |
| US11765398B2 (en) | 2023-09-19 |
| CN110636299A (en) | 2019-12-31 |
| TW202025741A (en) | 2020-07-01 |
| US11722703B2 (en) | 2023-08-08 |
| US20210112248A1 (en) | 2021-04-15 |
| WO2019244116A1 (en) | 2019-12-26 |
| TWI723433B (en) | 2021-04-01 |
| CN110636299B (en) | 2022-06-14 |
| TWI725456B (en) | 2021-04-21 |
| US20210112284A1 (en) | 2021-04-15 |
| WO2019244115A3 (en) | 2020-02-13 |
| CN110636314A (en) | 2019-12-31 |
| TW202015406A (en) | 2020-04-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11722703B2 (en) | Automatic partition for cross blocks | |
| US11647189B2 (en) | Cross-component coding order derivation | |
| US12537940B2 (en) | Definition of zero unit | |
| CN110662035B (en) | Filtering of zero units | |
| TWI707580B (en) | Partitioning of zero unit | |
| CN110730349B (en) | Constraint for microblocks |
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: 19762852 Country of ref document: EP Kind code of ref document: A2 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 20.04.2021) |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 19762852 Country of ref document: EP Kind code of ref document: A2 |
