Geometric partition pattern boundary prediction

By using geometric partitioning mode to perform boundary prediction in video encoding, the problem of low boundary prediction efficiency in the prior art is solved, and higher video compression efficiency and reconstruction quality are achieved.

CN119948869APending Publication Date: 2025-05-06INTERDIGITAL CE PATENT HOLDINGS SAS
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380068326.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-08-12
Filing Date
2023-07-28
Publication Date
2025-05-06

AI Technical Summary

Technical Problem

When existing video encoding technology uses geometric partition mode, the boundary prediction efficiency is low, which affects the video compression efficiency.

Method used

The boundary prediction is performed using geometric partitioning mode. By determining the boundary candidates in the video block, it is associated with the metric, selecting the optimal boundary candidates for encoding, and sending the used boundary candidates with signaling.

Benefits of technology

The compression efficiency of video encoding is improved, and through more accurate boundary prediction, the amount of encoded data is reduced, and the quality of video reconstruction is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119948869A_ABST
    Figure CN119948869A_ABST
Patent Text Reader

Abstract

The prediction of boundaries used in geometric prediction mode is accomplished in embodiments that eliminate the requirement to reconstruct samples of the current block that will increase pipeline latency. In one embodiment, the best boundary is predicted and added as a candidate to the list. In another embodiment, the candidates are ranked according to the boundary fit scores of the candidates, and an index is signaled to select the correct candidate in the corresponding decoder. In another embodiment, a fit of the boundary is calculated using metrics along boundary sub-blocks. In another embodiment, a fit of the boundary is calculated using metrics outside the boundary region.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of European application serial number 22306218.3 filed on August 12, 2022, which is incorporated herein by reference in its entirety. Technical Field

[0002] At least one of the present embodiments generally relates to a method or apparatus for video encoding or decoding, compression or decompression. Background Art

[0003] In order to achieve high compression efficiency, image and video coding schemes usually use prediction (including motion vector prediction) and transformation to exploit spatial and temporal redundancy in video content. In general, intra-frame or inter-frame prediction is used to exploit frame correlation within or between frames, and then the difference between the original image and the predicted image (usually expressed as a prediction error or prediction residual) is transformed, quantized, and entropy encoded. In order to reconstruct the video, the compressed data is decoded by the inverse process corresponding to entropy coding, quantization, transformation, and prediction. Summary of the invention

[0004] At least one embodiment of the present invention generally relates to a method or apparatus for video encoding or decoding, and more specifically, to a method or apparatus for boundary prediction using geometric partitioning (GEO) when a geometric partitioning mode (GPM) is used in a coding standard such as the VVC (Generic Video Coding or H.266) standard.

[0005] According to a first aspect, a method is provided. The method comprises the steps of determining one or more boundary candidates within a video block using a geometric partitioning pattern; associating the one or more boundary candidates with a metric to determine which boundary candidate to use for encoding; encoding the video block in the geometric partitioning pattern using the determined boundary candidates and a prediction mode corresponding to a portion of the video block defined by the determined boundary candidates; and signaling the determined boundary candidates used in the geometric partitioning pattern.

[0006] According to a second aspect, another method is provided. The method comprises the steps of: determining a boundary within a video block using a geometric partitioning pattern from a list of two or more boundary candidates; and decoding the video block using a prediction mode corresponding to a portion of the video block defined by the boundary.

[0007] According to another aspect, a device is provided. The device includes a processor. The processor may be configured to encode a video block or decode video data by executing any one of the above methods.

[0008] According to another general aspect of at least one embodiment, a device is provided, comprising an apparatus according to any one of the decoding embodiments; and at least one of the following: (i) an antenna configured to receive a signal, the signal comprising a video block; (ii) a band limiter configured to limit the received signal to a frequency band comprising the video block; or (iii) a display configured to display an output representing the video block.

[0009] According to another general aspect of at least one embodiment, there is provided a non-transitory computer-readable medium containing data content generated according to any of the described encoding embodiments or variations.

[0010] According to another general aspect of at least one embodiment, there is provided a signal comprising video data generated according to any of the described encoding embodiments or variants.

[0011] According to another general aspect of at least one embodiment, video data or a bitstream is formatted to include data content generated according to any of the described encoding embodiments or variations.

[0012] According to another general aspect of at least one embodiment, there is provided a computer program product comprising instructions which, when executed by a computer, cause the computer to perform any of the described decoding embodiments or variants.

[0013] These and other aspects, features and advantages of the general aspects will become apparent from the following detailed description of exemplary embodiments, which is to be read in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Figure 1 An example geometric split description is illustrated.

[0015] Figure 2 The diagram shows a geometric partition with an angle of 12 and distances between 0 and 3.

[0016] Figure 3 Proposed angles for GEO and their corresponding aspect ratios are illustrated.

[0017] Figure 4 Illustrated is the unidirectional prediction motion vector selection for GEO partition mode.

[0018] Figure 5 The diagram illustrates the MMVD being signaled as a distance and direction pair.

[0019] Figure 6An example of GPM under inter and intra prediction with available IPM candidates ((a)-(c)), and GPM under intra and intra prediction ((d)) is illustrated.

[0020] Figure 7 An example of a boundary edge on a template is shown.

[0021] Figure 8 An example of a GPM segmentation boundary is illustrated.

[0022] Fig. 9 An example of the weighting of each sample is illustrated.

[0023] Fig.10 The differential encoding of the boundary positions is illustrated.

[0024] Fig.11 An example of intra-inter GPM mode is illustrated.

[0025] Fig.12 A standard common video compression scheme is illustrated.

[0026] Fig.13 A standard general purpose video decompression scheme is illustrated.

[0027] Fig.14 A processor-based system for encoding / decoding under the generally described aspects is illustrated.

[0028] Fig.15 One embodiment of a method under the described aspects is illustrated.

[0029] Fig.16 A second embodiment of the method under the described aspects is illustrated.

[0030] Fig.17 One embodiment of an apparatus under the described aspects is illustrated. DETAILED DESCRIPTION

[0031] The embodiments described herein are in the field of video compression and relate generally to video compression and video encoding and decoding, and more particularly to improving compression efficiency compared to existing video encoding systems.

[0032] In order to achieve high compression efficiency, image and video coding schemes usually use prediction (including motion vector prediction) and transformation to exploit spatial and temporal redundancy in video content. Typically, intra-frame prediction or inter-frame prediction is used to exploit intra-frame or inter-frame correlation, and then the difference between the original image and the predicted image (usually referred to as the prediction error or prediction residual) is transformed, quantized and entropy encoded. In order to reconstruct the video, the compressed data is decoded by the inverse process corresponding to entropy coding, quantization, transformation and prediction.

[0033] In the HEVC (High Efficiency Video Coding) video compression standard, motion compensated temporal prediction is used to exploit the redundancy between consecutive pictures of a video.

[0034] To this end, a motion vector is associated to each prediction unit (PU), which is now introduced. Each CTU (Coding Tree Unit) is represented in the compressed domain by a coding tree. This is a quadtree partition of the CTU, where each leaf is called a Coding Unit (CU).

[0035] Each CU is then assigned some intra or inter prediction parameters (prediction information). For this purpose, it is spatially partitioned into one or more prediction units (PUs), each of which is assigned some prediction information. Intra or inter coding modes are assigned on a CU level.

[0036] In HEVC, exactly one motion vector is assigned to each PU. This motion vector is used for motion compensated temporal prediction of the considered PU.

[0037] In the Versatile Video Codec (VVC) developed by JVET (Joint Video Exploration Team), CU is no longer divided into PU or TU, but some motion data is directly assigned to each CU. In this new codec design, CU can be divided into sub-CUs with motion vectors calculated for each sub-CU.

[0038] Geometry Merge Mode In VVC, the geometric merge mode (GEO) with 32 angles and 5 distances is supported. It is quantized between 0 and 360 degrees with a step size equal to 11.25 degrees for a total of 32 angles. Figure 1 The angle and distance ρ i Description of the geometric segmentation.

[0039] Distance ρ i With a fixed step size from the maximum possible distance ρ max is quantized, which indicates the distance from the center of the block. i = 0, only the first half of the angle is available, since the segmentation is symmetrical in this case. Figure 2 The result of geometric partitioning using an angle of 12 and a distance between 0 and 3 is depicted in .

[0040] For a distance ρ equal to 0 i, symmetric angles 16-31 are removed because they correspond to the same partitioning as 0-15. Angles 0 and 8 are also excluded because they are similar to the binary partitioning of the CU, leaving only 14 angles for distance 0. Therefore, geometric partitioning can use a maximum of 142 partitioning modes (14+32*4=142).

[0041] To simplify the GEO partitioning process, the angles in GEO are replaced by angles whose tangent is a power of 2. Since the tangent of the proposed angle is a power of 2, most multiplications can be replaced by bit shifts. Using the proposed angle, each block size and each partition mode only requires one row or one column to store, such as Figure 3 Depicted.

[0042] One-way prediction candidate list construction for GEO The GEO unidirectional prediction candidate list is directly derived from the merge candidate list constructed according to the extended merge prediction process. Denote n as the index of the unidirectional prediction motion in the GEO unidirectional prediction candidate list. The LX motion vector (where X equals the parity of n) of the nth extended merge candidate is used as the nth unidirectional prediction motion vector of the GEO partition mode. Figure 4 In FIG. 5 , these motion vectors are marked with an “x”. In the case that the corresponding LX motion vector of the n-th extended merge candidate does not exist, the L(1-X) motion vector of the same candidate is used instead as the unidirectional prediction motion vector for the GEO partition mode.

[0043] There are up to 5 unidirectional prediction candidates, and the encoder has to test all combinations of candidates with partition direction and offset (one for each partition).

[0044] Blending along the edges of geometric partitions After predicting each part of the geometric partition using its own motion, a blend is applied to the two prediction signals to derive samples around the edges of the geometric partition. and distance ρ i , the mixing weight of each position of the CU is derived based on the distance between the individual position and the partition edge, such as Figure 2 as depicted by the example.

[0045] Motion field storage for geometric partitioning patterns In the motion field of a CU coded in geometry partition mode, Mv1 from the first part of the geometry partition, Mv2 from the second part of the geometry partition, and a combination Mv of Mv1 and Mv2 are stored.

[0046] If the playing field is partition 0 ( Figure 2 white part) or Partition 1 ( Figure 2If the motion field is part of the mixed part ( Figure 2 The gray part of ), then the combined Mv from Mv1 and Mv2 is stored. The following process is used to generate the combined Mv: 1) If Mv1 and Mv2 are from different reference picture lists (one from L0 and the other from L1), then Mv1 and Mv2 are simply combined to form a bi-directional prediction motion vector.

[0047] 2) Otherwise, if Mv1 and Mv2 are from the same list, only the unidirectional predicted motion Mv2 is stored.

[0048] Geometry Partition Mode (GPM) with Merged Motion Vector Difference (MMVD) In VVC, GPM is extended by applying motion vector refinement on top of the existing GPM unidirectional MV. First, a flag is signaled for the GPM CU to specify whether this mode is used. If this mode is used, each geometric partition of the GPM CU can further decide whether to signal MVD. If MVD is signaled for a geometric partition, after a GPM merge candidate is selected, the motion of the partition is further refined by the signaled MVD information. All other processes are the same as in GPM.

[0049] MVD is signaled as a distance and direction pair, similar to MMVD. Figure 5 As depicted, in GPM with MMVD (GPM-MMVD), 9 candidate distances (1 / 4 pixel, 1 / 2 pixel, 1 pixel, 2 pixels, 3 pixels, 4 pixels, 6 pixels, 8 pixels, 16 pixels) and 8 candidate directions (four horizontal / vertical directions and four diagonal directions) are involved. In addition, when pic_fpel_mmvd_enabled_flag is equal to 1, MVD is shifted to the left by 2 as in MMVD.

[0050] Geometric Partitioning Pattern (GPM) with Template Matching (TM) Template matching is applied to GPM. When GPM mode is enabled for a CU, a CU-level flag is signaled to indicate whether TM is applied to both geometry partitions. Motion information for each geometry partition is refined using TM. When TM is selected, the template is constructed using neighboring samples to the left, above, or both left and above, depending on the partition angle, as shown in Table 1. The motion is then refined by minimizing the difference between the current template and the template in the reference picture using the same search pattern of merge mode, with the half-pixel interpolation filter disabled.

[0051] Table 1. Templates for the first and second geometric partitions, where A means using the top sample, L means using the left sample, and L+A means using both the left sample and the top sample Partition Angle 0 2 3 4 5 8 11 12 13 14 First Division A A A A L+A L+A L+A L+A A A Second Division L+A L+A L+A L L L L L+A L+A L+A Partition Angle 16 18 19 20 21 24 27 28 29 30 First Division A A A A L+A L+A L+A L+A A A Second Division L+A L+A L+A L L L L L+A L+A L+A .

[0052] The GPM candidate list is constructed as follows: 1. Directly derive interleaved List-0 MV candidates and List-1 MV candidates from the regular merge candidate list, where List-0 MV candidates have higher priority than List-1 MV candidates. Apply a pruning method with an adaptive threshold based on the current CU size to remove redundant MV candidates.

[0053] 2. Further derive interleaved List-1 MV candidates and List-0 MV candidates directly from the regular merge candidate list, where List-1 MV candidates have higher priority than List-0 MV candidates. The same pruning method with adaptive threshold is also applied to remove redundant MV candidates.

[0054] 3. Fill in zero MV candidates until the GPM candidate list is full.

[0055] GPM-MMVD and GPM-TM are exclusively enabled for one GPM CU. This is done by first signaling the GPM-MMVD syntax. When both GPM-MMVD control flags are equal to false (i.e., GPM-MMVD is disabled for both GPM partitions), the GPM-TM flag is signaled to indicate whether template matching is applied to both GPM partitions. Otherwise (at least one GPM-MMVD flag is equal to true), the value of the GPM-TM flag is inferred to be false.

[0056] GPM under inter-frame and intra-frame prediction In GPM with inter and intra prediction, the final prediction samples are generated by weighting the inter prediction samples and intra prediction samples for each GPM separation region. The inter prediction samples are derived through the inter GPM, while the intra prediction samples are derived through the intra prediction mode (IPM) candidate list and the index signaled from the encoder. The IPM candidate list size is predefined to be 3. The available IPM candidates are parallel angle mode (parallel mode) for GPM block boundaries, vertical angle mode (vertical mode) for GPM block boundaries, and planar mode, such as Figure 6 (a) to (c). In addition, Figure 6As shown in Fig. d, the GPM under intra and intra prediction is restricted to reduce the signaling overhead of IPM and avoid the increase in the size of the intra prediction circuit on the hardware decoder. In addition, in order to further improve the coding performance, direct motion vector and IPM storage on the GPM mixed region is introduced.

[0057] In DIMD and neighboring pattern-based IPM derivation, parallel patterns are registered first. Therefore, if there are no identical IPM candidates in the list, up to two IPM candidates can be registered, which are derived by the decoder-side intra-frame mode derivation (DIMD) method and / or neighboring blocks. As for neighboring mode derivation, there are up to five positions for available neighboring blocks, but they are limited by the angles of the GPM block boundaries, as shown in Table 2, which have been used for GPM with template matching (GPM-TM).

[0058] Table 2. The positions of available neighboring blocks derived from IPM candidates based on the GPM block boundary angle. A and L represent the top and left of the prediction block. GPM angle 0 2 3 4 5 8 11 12 13 14 First Division A A A A L+A L+A L+A L+A A A Second Division L+A L+A L+A L L L L L+A L+A L+A Partition Angle 16 18 19 20 21 24 27 28 29 30 First Division A A A A L+A L+A L+A L+A A A Second Division L+A L+A L+A L L L L L+A L+A L+A .

[0059] GPM-MMVD can be combined with GPM with merged motion vector difference. TIMD is used for IPM candidates within GPM frames to further improve coding performance. Parallel mode can be registered first, and then TIMD, DIMD and IPM candidates of neighboring blocks can be registered.

[0060] Reordering of GPM segmentation patterns based on template matching In the reordering of GPM partitioning modes based on template matching, given the motion information of the current GPM block, the corresponding TM cost value of the GPM partitioning mode is calculated. Then, all GPM partitioning modes are reordered in ascending order based on the TM cost value. Instead of sending the GPM partitioning mode, an index using Golomb-Rice encoding is signaled, which indicates where the exact GPM partitioning mode is located in the reordering list.

[0061] The reordering method for the GPM partitioning mode is a two-step process performed after the corresponding reference templates of the two GPM partitions in the coding unit are generated, as follows: 1. Extend the GPM partition edge into the reference templates of the two GPM partitions, resulting in 64 reference templates, and calculate the corresponding TM cost for each of the 64 reference templates; 2. Re-sort the GPM partitioning patterns in ascending order based on their TM cost values ​​and mark the best 32 as available partitioning patterns.

[0062] The edges on the template are extended from the edges of the current CU, such as Figure 7 As shown, however, the GPM blending process is not used in the template region across the edge. After ascending reordering using the TM cost, the index is signaled.

[0063] In current ECM, GPM can be derived from the TM method, but it requires reconstructing samples in the template area of ​​the current block, which increases the pipeline delay. In fact, the decoder should wait for the neighboring blocks to be reconstructed to access the corresponding samples in the TM area.

[0064] What is proposed is to predict the boundaries of the GPM at the decoder side.

[0065] In one embodiment, the best boundary is predicted and added as a candidate in a list.

[0066] In another embodiment, the candidates are ranked according to their boundary fitting scores and the index is signaled to select the correct candidate.

[0067] In another embodiment, the fit of the boundary is calculated using metrics along the boundary sub-blocks.

[0068] In another embodiment, the fit of the boundary is calculated using metrics outside the boundary region.

[0069] In another embodiment, possible latency issues of the motion vector predictor are alleviated.

[0070] exist Figure 8 In , we show a GPM coded CU, where the partitions and the sub-blocks containing the partitions are shown in grey.

[0071] The top and bottom of the CU use 2 different motion compensation or intra prediction.

[0072] Cost Calculation In a first embodiment, the cost D of a boundary candidate is calculated as the difference between two predictions in the sub-block containing the boundary.

[0073] where P0 and P1 are the predictions for lists L0 and L1 respectively.

[0074] The difference may be calculated as follows: the absolute difference between samples, the square of the difference between samples, SATD (sum of absolute transformed differences, commonly used for prediction evaluation in encoders), or other appropriate metrics related to the difference between samples.

[0075] In an embodiment, the cost is calculated as the difference between sub-blocks outside the border sub-blocks. In this case, a negative sign is added to the metric: for this metric, the larger the difference, the "better" it is considered.

[0076] In another embodiment, a mixture of two metrics is proposed: D=Ds+Dt In another embodiment, a weighted sum of two metrics is proposed: Where w(b) is the weighting factor for each sample.

[0077] Fig. 9 An example of sample weighting is shown: the farther the sample is from the boundary, the lower the weight. When close to the boundary, similar samples are given higher scores, and when far from the boundary, dissimilar samples are given higher scores.

[0078] In an embodiment, to reduce complexity, the metric is subsampled horizontally and vertically every N samples. Typically, N=2, i.e., every other sample is subsampled.

[0079] Candidate selection Based on the D cost value, all GPM partitioning patterns are reordered in ascending order.Instead of sending the GPM partitioning pattern, an index is signaled which indicates where the exact GPM partitioning pattern is located in the reordering list.

[0080] In a first embodiment, after the candidate list has been created, the cost of each partitioning mode is performed. The prediction parameters for each part of the block are known: motion vectors mv0 and mv1 and reference frames R0 and R1. The N best scores of the partitioning mode are calculated for each candidate in the list.

[0081] An example for N=2 is shown in the following table. index Candidate Boundary position, angle Score D 0 0 dist=2, phi=30 300 1 0 dist=3, phi=45 350 2 1 dist=1,phi=20 200 3 1 dist=3, phi=40 450 4 … … …

[0082] This index is then signaled in the bitstream to specify the final candidate in the list.

[0083] In an embodiment, the index of the candidate is first signaled, and then the index of the partitioning mode is signaled, as shown in the following table, where the candidate c has been signaled first:

[0084] In another embodiment, all candidates and all segmentation modes are ranked according to their scores D, and an index is transmitted to select the best candidate, as shown in the following table: index Candidate Boundary position, angle Score D 0 2 dist=2, phi=30 150 1 1 dist=3, phi=45 250 2 2 dist=1,phi=20 300 3 0 dist=3, phi=40 450 4 … … … .

[0085] In an embodiment, the N best candidates are inserted in a default list (and removed from their previous positions in the list) according to the score D. For example, the first 2 candidates are the ones found using the above process, but the rest of the list remains unchanged.

[0086] Alternative differential signaling In an embodiment, the score D is used to select the best boundary position for each candidate. This position is then used as a reference to transmit its difference from the final boundary position. Fig.10 In , we show an example of differential signaling of a boundary position: the best boundary position p and orientation phi are found using the ranking method described previously. To get the final position and orientation, an additional offset dp on top of p and an additional offset dphi on top of phi are signaled.

[0087] Estimating the best boundary In an embodiment that may be combined with any of the previous embodiments, the most likely boundary may be estimated using the D-cost variation with (θ, ρ) respectively. For a given pair of MV candidates, the most likely boundary is estimated as follows:

[0088] Motion Vector Predictor Propagation Due to the calculation of the boundary position some delay may be introduced in the decoding of the motion information of the block (especially if the motion information should be available for neighboring blocks).

[0089] In an embodiment, we propose to propagate the motion information of neighboring blocks "as if" the whole block was a bi-predicted block without borders. The rules described in the subsection on motion field storage for geometric partitioning patterns are applied to infer the motion information of each sub-block.

[0090] After a frame has been decoded, all motion information may be made available for temporal prediction, and a default GPM motion information storage taking into account boundary locations may be applied for the final storage.

[0091] Intra-frame and Inter-frame modes In case of Intra-Inter mode or Intra-Intra mode, both predictions (Intra reference sample propagation and Inter motion compensation) are performed, but only in sub-blocks in the boundary. The cost calculation is also restricted to sub-blocks in the boundary area.

[0092] Fig.15One embodiment of a method 1500 under the general aspects described herein is shown in . The method begins at start block 1501 and control proceeds to block 1510 for determining one or more boundary candidates within a video block using a geometric partitioning pattern. Control proceeds from block 1510 to block 1520 for associating one or more boundary candidates with a metric to determine which boundary candidate to use for encoding. Control proceeds from block 1520 to block 1530 for encoding the video block in a geometric partitioning pattern using the determined boundary candidates and a prediction mode corresponding to a portion of the video block defined by the determined boundary candidates. Control proceeds from block 1530 to block 1540 for signaling the determined boundary candidates used in the geometric partitioning pattern.

[0093] Fig.16 One embodiment of a method 1600 under the general aspects described herein is shown in FIG. 16. The method begins at start block 1601 and control proceeds to block 1610 for determining a boundary within a video block using a geometric partitioning pattern from a list of two or more boundary candidates. Control proceeds from block 1610 to block 1620 for decoding the video block using a prediction mode corresponding to a portion of the video block defined by the boundary.

[0094] Fig.17 One embodiment of an apparatus 1700 for encoding, decoding, compressing or decompressing video data using prediction for at least one boundary of a geometric partitioning pattern is shown. The apparatus includes a processor 1710 and may be interconnected to a memory 1720 via at least one port. Both the processor 1710 and the memory 1720 may also have one or more additional interconnections to external connections.

[0095] The processor 1710 is also configured to insert or receive information in a bitstream and compress, encode, or decode using any of the described aspects.

[0096] The embodiments described herein include various aspects, including tools, features, embodiments, models, methods, etc. Many of these aspects are described as having specificity, and are usually described in a manner that may sound restrictive, at least to illustrate individual characteristics. However, this is for the purpose of clarity of the aspects, and does not limit the application or scope of these aspects. In fact, all different aspects can be combined and exchanged to provide additional aspects. In addition, these aspects can also be combined and exchanged with the aspects described in the previous files.

[0097] The aspects described and contemplated in this application can be implemented in many different forms. Fig.12 , Fig.13 and Fig.14Some embodiments are provided, but other embodiments are contemplated, and Fig.12 , Fig.13 and Fig.14 The discussion does not limit the breadth of implementations. At least one of these aspects generally relates to video encoding and decoding, and at least another aspect generally relates to transmitting a generated or encoded bitstream. These and other aspects can be implemented as methods, apparatus, a computer-readable storage medium having stored thereon instructions for encoding or decoding video data according to any of the described methods, and / or a computer-readable storage medium having stored thereon a bitstream generated according to any of the described methods.

[0098] In this application, the terms "reconstruction" and "decoding" can be used interchangeably, the terms "pixel" and "sample" can be used interchangeably, and the terms "image", "picture" and "frame" can be used interchangeably. Usually (but not necessarily), the term "reconstruction" is used on the encoder side, while "decoding" is used on the decoder side.

[0099] Various methods are described herein, and each method includes one or more steps or actions for implementing the described method. Unless a specific order of steps or actions is required for the correct operation of the method, the order and / or use of specific steps and / or actions may be modified or combined.

[0100] The various methods and other aspects described in this application can be used to modify a module, for example, Fig.12 and Fig.13 Intra-frame prediction, entropy encoding and / or decoding modules (160, 360, 145, 330) of the video encoder 100 and decoder 200 shown. In addition, the present aspects are not limited to VVC or HEVC, and can be applied to, for example, other standards and recommendations (whether pre-existing or developed in the future) and extensions of any such standards and recommendations (including VVC and HEVC). Unless otherwise indicated or technically excluded, the aspects described in this application can be used alone or in combination.

[0101] Various numerical values ​​are used in this application. Specific values ​​are used for illustrative purposes, and the described aspects are not limited to these specific values.

[0102] Fig.12 An encoder 100 is illustrated. Variations of the encoder 100 are conceivable, but for the sake of clarity, the encoder 100 is described below without describing all contemplated variations.

[0103] Before being encoded, the video sequence may undergo pre-encoding processing (101), for example, applying a color transform to the input color picture (e.g., conversion from RGB 4:4:4 to YCbCr 4:2:0), or performing a remapping of the input picture components in order to obtain a signal distribution that is more resilient to compression (e.g., using histogram equalization of one of the color components). Metadata may be associated with the pre-processing and appended to the bitstream.

[0104] In encoder 100, a picture is encoded by encoder elements as described below. The picture to be encoded is partitioned (102) and processed in units such as CUs. Each unit is encoded using, for example, intra mode or inter mode. When a unit is encoded in intra mode, it performs intra prediction (160). In inter mode, motion estimation (175) and compensation (170) are performed. The encoder decides (105) which of intra mode or inter mode to use to encode the unit, and indicates the intra / inter decision by, for example, a prediction mode flag. A prediction residual is calculated, for example, by subtracting (110) the predicted block from the original image block.

[0105] The prediction residual is then transformed (125) and quantized (130). The quantized transform coefficients, along with motion vectors and other syntax elements, are entropy encoded (145) to output a bitstream. The encoder may skip the transform and directly quantize the untransformed residual signal. The encoder may bypass both the transform and quantization, i.e., directly encode the residual without applying the transform or quantization process.

[0106] The encoder decodes the encoded block to provide a reference for further prediction. The quantized transform coefficients are dequantized (140) and inverse transformed (150) to decode the prediction residual. The decoded prediction residual and the prediction block are combined (155) to reconstruct the image block. An in-loop filter (165) is applied to the reconstructed picture to perform, for example, deblocking / SAO (sample adaptive offset) filtering to reduce coding artifacts. The filtered image is stored in a reference picture buffer (180).

[0107] Fig.13 2 shows a block diagram of a video decoder 200. In the decoder 200, the bitstream is decoded by the decoder elements as described below. The video decoder 200 generally performs the same Fig.12 The encoding pass described in is the reciprocal decoding pass of .Encoder 100 also typically performs video decoding as part of encoding the video data.

[0108] In particular, the input to the decoder includes a video bitstream, which may be generated by the video encoder 100. The bitstream is first entropy encoded (230) to obtain transform coefficients, motion vectors, and other encoding information. The picture partition information indicates how the picture is partitioned. Therefore, the decoder can divide the picture according to the decoded picture partition information (235). The transform coefficients are dequantized (240) and inverse transformed (250) to decode the prediction residual. The decoded prediction residual and the prediction block are combined (255) to reconstruct the image block. The prediction block can be obtained (270) from intra-frame prediction (260) or motion compensated prediction (i.e., inter-frame prediction) (275). An in-loop filter (265) is applied to the reconstructed image. The filtered image is stored in a reference picture buffer (280).

[0109] The decoded picture may be further subjected to post-decoding processing (285), such as an inverse color transform (e.g., a transform from YCbCr 4:2:0 to RGB 4:4:4) or an inverse remapping that performs the inverse of the remapping process performed in the pre-encoding processing (101). The post-decoding processing may use metadata derived in the pre-encoding processing and signaled in the bitstream.

[0110] Fig.14 A block diagram of an example of a system in which various aspects and embodiments are implemented is illustrated. System 1000 may be embodied as a device including the following various components, and is configured to perform one or more aspects described in this document. Examples of such devices include, but are not limited to, various electronic devices, such as personal computers, laptop computers, smart phones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected household appliances, and servers. The elements of system 1000 may be embodied in a single integrated circuit (IC), multiple ICs, and / or discrete components, either individually or in combination. For example, in at least one embodiment, the processing and encoder / decoder elements of system 1000 are distributed across multiple ICs and / or discrete components. In various embodiments, system 1000 is coupled to one or more other systems or other electronic devices via, for example, a communication bus or by a dedicated input and / or output port communication. In various embodiments, system 1000 is configured to implement one or more aspects described in this document.

[0111] The system 1000 includes at least one processor 1010 configured to execute instructions loaded therein to implement, for example, various aspects described in this document. The processor 1010 may include embedded memory, input-output interfaces, and various other circuits known in the art. The system 1000 includes at least one memory 1020 (e.g., a volatile memory device and / or a non-volatile memory device). The system 1000 includes a storage device 1040, which may include a non-volatile memory and / or a volatile memory, including but not limited to an electrically erasable programmable read-only memory (EEPROM), a read-only memory (ROM), a programmable read-only memory (PROM), a random access memory (RAM), a dynamic random access memory (DRAM), a static random access memory (SRAM), a flash memory, a magnetic disk drive, and / or an optical disk drive. The storage device 1040 may include an internal storage device, an attached storage device (including a removable and non-removable storage device), and / or a network-accessible storage device, as a non-limiting example.

[0112] The system 1000 includes an encoder / decoder module 1030, which is configured to process data to provide encoded video or decoded video, for example, and the encoder / decoder module 1030 may include its own processor and memory. The encoder / decoder module 1030 represents a (multiple) module that can be included in a device to perform encoding and / or decoding functions. As is known, a device may include one or both of the encoding and decoding modules. Additionally, the encoder / decoder module 1030 may be implemented as a separate element of the system 1000, or may be incorporated into the processor 1010 as a combination of hardware and software known to those skilled in the art.

[0113] Program code to be loaded onto the processor 1010 or the encoder / decoder 1030 to perform various aspects described in this document may be stored in the storage device 1040 and subsequently loaded onto the memory 1020 for execution by the processor 1010. According to various embodiments, one or more of the processor 1010, the memory 1020, the storage device 1040, and the encoder / decoder module 1030 may store one or more of various items during the execution of the processes described in this document. Such stored items may include, but are not limited to, input video, decoded video or portions of decoded video, bitstreams, matrices, variables, and intermediate or final results from the processing of equations, formulas, operations, and operation logic.

[0114] In some embodiments, memory internal to the processor 1010 and / or encoder / decoder module 1030 is used to store instructions and provide working memory for processing required during encoding or decoding. However, in other embodiments, memory external to the processing device (e.g., the processing device may be the processor 1010 or the encoder / decoder module 1030) is used for one or more of these functions. The external memory may be memory 1020 and / or storage device 1040, such as dynamic volatile memory and / or non-volatile memory. In several embodiments, external non-volatile flash memory is used to store, for example, an operating system for a television. In at least one embodiment, a fast external dynamic volatile memory (such as RAM) is used as working memory for video encoding and decoding operations, such as for MPEG-2 (MPEG refers to Moving Picture Experts Group, MPEG-2 is also known as ISO / IEC 13818, and 13818-1 is also known as H.222, and 13818-2 is also known as H.262), HEVC (HEVC refers to High Efficiency Video Coding, also known as H.265 and MPEG-H Part 2), or VVC (Versatile Video Coding, a new standard developed by JVET (Joint Video Experts Team)).

[0115] Inputs to the elements of system 1000 may be provided through various input devices indicated in box 1130. Such input devices include, but are not limited to: (i) a radio frequency (RF) section that receives an RF signal transmitted over the air, such as by a broadcaster; (ii) a component (COMP) input terminal (or a set of COMP input terminals); (iii) a universal serial bus (USB) input terminal; and / or (iv) a high-definition multimedia interface (HDMI) input terminal. Fig.14 Other examples not shown include composite video.

[0116] In various embodiments, the input device of block 1130 has associated corresponding input processing elements known in the art. For example, the RF section may be associated with an element adapted to: (i) select a desired frequency (also referred to as selecting a signal, or band limiting a signal to a certain frequency band); (ii) down-convert the selected signal; (iii) again band-limit the frequency band to a narrower frequency band to select (for example) a signal frequency band, which may be referred to as a channel in some embodiments; (iv) demodulate the down-converted and band-limited signal; (v) perform error correction; and (vi) demultiplex to select a desired data packet stream. The RF section of various embodiments includes one or more elements for performing these functions, such as a frequency selector, a signal selector, a band limiter, a channel selector, a filter, a down-converter, a demodulator, an error corrector, and a demultiplexer. The RF section may include a tuner that performs various of these functions, including, for example, down-converting a received signal to a lower frequency (e.g., an intermediate frequency or a near-baseband frequency) or baseband. In a set-top box embodiment, the RF part and its associated input processing element receive the RF signal transmitted by wired (for example, cable) medium, and filter to the desired frequency band by filtering, down-conversion and again to perform frequency selection.Various embodiments rearrange the order of above-mentioned (and other) elements, remove some elements in these elements and / or add other elements that perform similar or different functions.Adding element can include inserting element between existing element, such as, for example, inserting amplifier and analog-to-digital converter.In various embodiments, the RF part comprises antenna.

[0117] Additionally, the USB and / or HDMI terminals may include corresponding interface processors for connecting the system 1000 to other electronic devices across the USB and / or HDMI connections. It should be understood that various aspects of input processing (e.g., Reed-Solomon error correction) may be implemented as desired, for example, within a separate input processing IC or within the processor 1010. Similarly, aspects of USB or HDMI interface processing may be implemented as desired within a separate interface IC or within the processor 1010. The demodulated, error corrected, and demultiplexed streams are provided to various processing elements, including, for example, the processor 1010 and the encoder / decoder 1030, which operate in combination with memory and storage elements to process the data streams as desired for presentation on an output device.

[0118] The various elements of system 1000 may be provided within an integrated housing within which the various elements may be interconnected and data transmitted therebetween using a suitable connection arrangement, such as an internal bus known in the art, including an Inter-IC (I2C) bus, wiring, and printed circuit boards.

[0119] The system 1000 includes a communication interface 1050 that enables communication with other devices via a communication channel 1060. The communication interface 1050 may include, but is not limited to, a transceiver configured to transmit and receive data over the communication channel 1060. The communication interface 1050 may include, but is not limited to, a modem or a network card, and the communication channel 1060 may be implemented, for example, within a wired and / or wireless medium.

[0120] In various embodiments, a wireless network, such as a Wi-Fi network, for example IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers), is used to stream data to the system 1000 or otherwise provide it to the system 1000. The Wi-Fi signal of these embodiments is received by a communication channel 1060 and a communication interface 1050 adapted to Wi-Fi communication. The communication channel 1060 of these embodiments is usually connected to an access point or router, which provides access to an external network including the Internet to allow streaming applications and other over-the-top communications. Other embodiments use a set-top box to provide streaming data to the system 1000, which delivers data through the HDMI connection of the input box 1130. Still other embodiments use the RF connection of the input box 1130 to provide streaming data to the system 1000. As indicated above, various embodiments provide data in a non-streaming manner. Additionally, various embodiments use wireless networks other than Wi-Fi, such as cellular networks or Bluetooth networks.

[0121] The system 1000 can provide output signals to various output devices, including a display 1100, a speaker 1110, and other peripherals 1120. The display 1100 of various embodiments may include, for example, one or more of a touch screen display, an organic light emitting diode (OLED) display, a curved display, and / or a foldable display. The display 1100 can be used for a television, a tablet computer, a cellular phone (mobile phone), or another device. The display 1100 can also be integrated with other components (e.g., as in a smart phone), or be separate (e.g., an external display of a laptop). In various examples of embodiments, other peripherals 1120 include one or more of a stand-alone digital video disc (or digital versatile disc) (DVR, for both terms), a disc player, a stereo system, and / or a lighting system. Various embodiments use one or more peripherals 1120 that provide functions based on the output of the system 1000. For example, a disc player performs the function of playing the output of the system 1000.

[0122] In various embodiments, control signals are transmitted between the system 1000 and the display 1100, speaker 1110, or other peripheral device 1120 using signaling such as AV.Link, Consumer Electronics Control (CEC), or other communication protocols that enable device-to-device control with or without user intervention. Output devices may be communicatively coupled to the system 1000 via dedicated connections through respective interfaces 1070, 1080, and 1090. Alternatively, the output devices may be connected to the system 1000 using a communication channel 1060 via a communication interface 1050. The display 1100 and speaker 1110 may be integrated into a single unit with other components of the system 1000 in an electronic device such as, for example, a television. In various embodiments, the display interface 1070 includes a display driver such as, for example, a timing controller (T Con) chip.

[0123] Display 1100 and speaker 1110 may alternatively be separate from one or more of the other components, for example if the RF portion of input 1130 is part of a separate set-top box. In various embodiments where display 1100 and speaker 1110 are external components, output signals may be provided via dedicated output connections including, for example, an HDMI port, a USB port, or a COMP output.

[0124] The embodiments may be performed by computer software implemented by the processor 1010, or by hardware, or by a combination of hardware and software. As a non-limiting example, the embodiments may be implemented by one or more integrated circuits. The memory 1020 may be of any type suitable for the technical environment and may be implemented using any appropriate data storage technology, such as optical memory devices, magnetic memory, semiconductor-based memory devices, fixed memory, and removable memory, as non-limiting examples. The processor 1010 may be of any type suitable for the technical environment and may include one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture, as non-limiting examples.

[0125] Various implementations involve decoding. "Decoding" as used herein may encompass, for example, all or part of a process performed on a received coded sequence to produce a final output suitable for display. In various embodiments, such a process includes one or more of the processes typically performed by a decoder, such as entropy coding, inverse quantization, inverse transform, and differential decoding. In various embodiments, such a process also or alternatively includes a process performed by a decoder of the various implementations described herein.

[0126] As a further example, in one embodiment, "decoding" refers only to entropy decoding; in another embodiment, "decoding" refers only to differential decoding; and in another embodiment, "decoding" refers to a combination of entropy decoding and differential decoding. Whether the phrase "decoding process" is intended to refer specifically to a subset of operations or generally to a broader decoding process will be clear based on the context of the specific description and is believed to be well understood by those skilled in the art.

[0127] Various implementations involve encoding. In a manner similar to the above discussion of "decoding", "encoding" as used in this application may include, for example, all or part of a process performed on an input video sequence to produce an encoded bitstream. In various embodiments, such processes include one or more of the processes typically performed by an encoder, such as partitioning, differential encoding, transforms, quantization, and entropy encoding. In various embodiments, such processes also or alternatively include processes performed by an encoder of the various implementations described in this application.

[0128] As a further example, in one embodiment, "encoding" refers only to entropy encoding; in another embodiment, "decoding" refers only to differential encoding; and in another embodiment, "decoding" refers to a combination of entropy encoding and differential encoding. Whether the phrase "encoding process" is intended to specifically refer to a subset of operations or to generally refer to a broader encoding process will be clear based on the context of the specific description and is believed to be well understood by those skilled in the art.

[0129] Note that the syntax elements used in this article are descriptive terms. Therefore, they do not exclude the use of other syntax element names.

[0130] When a figure is presented as a flow chart, it should be understood that it also provides a block diagram of the corresponding apparatus. Similarly, when a figure is presented as a block diagram, it should be understood that it also provides a flow chart of the corresponding method / process.

[0131] Various embodiments may relate to parameter models or rate-distortion optimization. In particular, in the encoding process, a balance or trade-off between rate and distortion is generally considered, given a computational complexity constraint. It can be measured by a rate-distortion optimization (RDO) metric, or by a least mean square (LMS), mean absolute error (MAE), or other such measurements. Rate-distortion optimization is generally formulated as minimizing a rate-distortion function, which is a weighted sum of rate and distortion. There are different approaches to solving the rate-distortion optimization problem. For example, an approach may be based on extensive testing of all coding options (including all considered modes or coding parameter values), using a complete evaluation of their coding costs and the associated distortion of the reconstructed signal after encoding and decoding. A faster approach may also be used to save coding complexity, in particular by calculating approximate distortion based on a prediction or prediction residual signal rather than a reconstructed signal. A mixture of these two approaches may also be used, such as by using approximate distortion only for some of the possible coding options and using full distortion for other coding options. Other approaches evaluate only a subset of possible coding options. More generally, many methods employ any of a variety of techniques to perform the optimization, but the optimization is not necessarily a complete assessment of both the coding cost and the associated distortion.

[0132] The implementations and aspects described herein may be implemented in, for example, methods or processes, devices, software programs, data streams, or signals. Even if only discussed in the context of a single form of implementation (e.g., discussed only as a method), the implementation of the features discussed may also be implemented in other forms (e.g., devices or programs). Devices may be implemented in, for example, appropriate hardware, software, and firmware. Methods may be implemented in, for example, a processor, which generally refers to a processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, cellular phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate information communication between end users.

[0133] References to "one embodiment" or "an embodiment" or "one implementation" or "an implementation" and other variations thereof mean that a particular feature, structure, characteristic, etc. described in connection with the embodiment is included in at least one embodiment. Thus, the phrases "in one embodiment" or "in an embodiment" or "in an implementation" or "in an implementation" and any other variations appearing in various places throughout this application are not necessarily all referring to the same embodiment.

[0134] Additionally, the present application may refer to "determining" various pieces of information. Determining information may include one or more of the following: for example, estimating information, calculating information, predicting information, or retrieving information from a memory.

[0135] Further, the present application may involve "accessing" various pieces of information. Accessing information may include one or more of: for example, receiving information, retrieving information (e.g., from a memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.

[0136] Additionally, the present application may refer to "receiving" various pieces of information. Like "accessing," receiving is intended to be a broad term. Receiving information may include one or more of: for example, accessing information or retrieving information (e.g., from a memory). Further, "receiving" generally refers in one way or another during an operation such as, for example, storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.

[0137] It is to be appreciated that the use of any of " / ", "and / or", and "at least one of" below - for example, in the case of "A / B", "A and / or B", and "at least one of A and B" - is intended to cover selecting only the first listed option (A), or only the second listed option (B), or both options (A and B). As a further example, in the case of "A, B, and / or C" and "at least one of A, B, and C", such wording is intended to cover selecting only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or all three options (A and B and C). It will be apparent to one of ordinary skill in this and related arts that this can be extended for as many items as listed.

[0138] Likewise, as used herein, among other aspects, the word "signal" is to indicate something to the corresponding decoder. For example, in some embodiments, the decoder sends a specific one of multiple transforms, coding modes or flags with a signal. In this way, in one embodiment, the same transform, parameter or mode is used on the encoder side and the decoder side. Therefore, for example, the encoder can transmit specific parameters to the decoder (explicit signaling) so that the decoder can use the same specific parameters. On the contrary, if the decoder already has specific parameters and other parameters, signaling can be used without transmission (implicit signaling) to allow only the decoder to know and select specific parameters. By avoiding the transmission of any actual function, bit saving is achieved in various embodiments. It is to be appreciated that signaling can be completed in a variety of ways. For example, in various embodiments, one or more grammatical elements, flags, etc. are used to send information to the corresponding decoder with a signal. Although the verb form of the word "send with a signal" is related to the above, the word "signal" can also be used as a noun in this article.

[0139] It will be apparent to one of ordinary skill in the art that implementations may generate various signals formatted to carry information that may, for example, be stored or transmitted. For example, the information may include instructions for executing the method or data generated by one of the described implementations. For example, a signal may be formatted to carry a bitstream of the described embodiments. Such a signal may be formatted, for example, as an electromagnetic wave (e.g., using a radio frequency portion of a spectrum) or as a baseband signal. For example, formatting may include encoding a data stream and modulating a carrier with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. As is known, the signal may be transmitted over a variety of different wired or wireless links. The signal may be stored on a processor readable medium.

[0140] The preceding sections describe multiple embodiments across various claim categories and types. Features of these embodiments may be provided individually or in any combination. Further, embodiments may include one or more of the following features, devices, or aspects, individually or in any combination across various claim categories and types: At least one embodiment includes predicting boundaries of video blocks or sub-blocks.

[0141] At least one embodiment includes that the prediction uses a cost estimate.

[0142] At least one embodiment includes associating a metric to each boundary predicted.

[0143] At least one embodiment includes adding the predicted boundary location to a list.

[0144] At least one embodiment includes that the above list is based on a metric.

[0145] At least one embodiment includes that the above-mentioned metric is based on error or difference.

[0146] At least one embodiment comprises including signaling in the video data or bitstream indicating boundaries for geometric partition mode encoding.

[0147] At least one embodiment includes any decoding operations based on the operations described above.

[0148] At least one embodiment includes a bitstream or signal including one or more of the described syntax elements or variants thereof.

[0149] At least one embodiment includes a bitstream or signal including syntax that conveys information generated according to any of the described embodiments.

[0150] At least one embodiment comprises creating and / or transmitting and / or receiving and / or decoding according to any of the described embodiments.

[0151] At least one embodiment includes a method, process, apparatus, medium storing instructions, medium storing data, or signal according to any of the described embodiments.

[0152] At least one embodiment comprises inserting syntax elements in the signaling that enable a decoder to determine decoding information in a manner corresponding to that used by an encoder.

[0153] At least one embodiment includes creating and / or transmitting and / or receiving and / or decoding a bitstream or signal including one or more of the described syntax elements or variations thereof.

[0154] At least one embodiment includes a TV, set-top box, cell phone, tablet computer, or other electronic device that performs the transformation method(s) according to any of the described embodiments.

[0155] At least one embodiment includes a TV, set-top box, cellular phone, tablet computer, or other electronic device that performs (multiple) transformation method determinations according to any of the described embodiments and displays (e.g., using a monitor, screen, or other type of display) the resulting image.

[0156] At least one embodiment includes a TV, set-top box, cellular phone, tablet computer, or other electronic device that selects, band-limits, or tunes (e.g., using a tuner) a channel to receive a signal including an encoded image and performs (multiple) transformation methods according to any of the described embodiments.

[0157] At least one embodiment includes a TV, set-top box, cellular phone, tablet, or other electronic device that receives over-the-air (eg, using an antenna) a signal including an encoded image and performs the transform method(s).

Claims

1. A method comprising: determining one or more boundary candidates within the video block using a geometric partitioning pattern; associating the one or more boundary candidates with a metric to determine which boundary candidate to use for encoding; encoding the video block in a geometric partition mode using the determined boundary candidates and a prediction mode corresponding to a portion of the video block defined by the determined boundary candidates; as well as The determined boundary candidates used in the geometric partitioning mode are signaled.

2. A device comprising: A processor configured to execute: determining one or more boundary candidates within the video block using a geometric partitioning pattern; associating the one or more boundary candidates with a metric to determine which boundary candidate to use for encoding; encoding the video block in a geometric partition mode using the determined boundary candidates and a prediction mode corresponding to a portion of the video block defined by the determined boundary candidates; as well as The determined boundary candidates used in the geometric partitioning mode are signaled.

3. A method comprising: determining a boundary within the video block using a geometric partitioning mode from a list of two or more boundary candidates; as well as The video block is decoded using a prediction mode corresponding to the portion of the video block defined by the boundary.

4. A device comprising: A processor configured to execute: determining a boundary within the video block using a geometric partitioning mode from a list of two or more boundary candidates; as well as The video block is decoded using a prediction mode corresponding to the portion of the video block defined by the boundary.

5. The method of claim 1 or the apparatus of claim 2, wherein determining comprises cost determination.

6. The method according to claim 1 or the apparatus according to claim 2, wherein the boundary candidates for encoding are determined by error analysis.

7. The method of claim 3 or the apparatus of claim 4, wherein the boundary is determined by using an index indicating one of several boundary candidates to be used.

8. The method of claim 1 or the apparatus of claim 2, wherein the boundary candidates are ranked according to boundary fitting scores.

9. The method of claim 1 or the apparatus of claim 2, wherein the boundary candidate is associated with a metric outside a boundary region.

10. The method of claim 1 or 3, or the apparatus of claim 2 or 4, wherein the cost of a boundary candidate is determined as an absolute difference between two predictions in a block containing the boundary candidate.

11. The method of claim 1 or 3, or the apparatus of claim 2 or 4, wherein the boundary score is used as a reference boundary position, and the difference is signaled to indicate the final boundary position.

12. A device comprising: The device according to claim 1; as well as At least one of: (i) an antenna configured to receive a signal, the signal comprising a video block; (ii) a band limiter configured to limit the received signal to a frequency band comprising the video block; and (iii) a display configured to display an output representing the video block.

13. A non-transitory computer-readable medium comprising data content generated by the method of any one of claims 1, 5, 6 or 8-11, or by the apparatus of any one of claims 2, 5, 6 or 8-11, for playback using a processor.

14. A signal comprising data content generated by a method according to any one of claims 1, 5, 6 or 8-11, or by an apparatus according to any one of claims 2, 5, 6 or 8-11, for playback using a processor.

15. A computer program product comprising instructions which, when said program is executed by a computer, cause said computer to perform the method according to claim 1.