Inter prediction in geometric partitions with adaptive region number
Through the geometric partitioning mode of adaptive area number, video blocks are partitioned into non-rectangular areas. Advanced motion vector prediction and merging modes are used to solve the problems of high encoding complexity and low compression efficiency in inter-frame prediction, and more efficient video encoding and decoding is achieved.
Patent Information
- Application Number
- CN202411950604.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-01-28
- Filing Date
- 2020-01-28
- Publication Date
- 2025-04-11
AI Technical Summary
The existing video encoding technology has problems of high encoding complexity and low compression efficiency in inter-frame prediction, especially when processing videos with complex object boundaries, it is difficult to effectively perform block partitioning to reduce motion compensation prediction errors.
Using geometric partitioning mode with adaptive number of regions, rectangular blocks are partitioned into three or more non-rectangular areas, advanced motion vector prediction and merge mode are used to determine the motion vector of each region, and inter prediction is performed through geometric partitioning mode, AMVP mode and merge mode to reduce the need to encode motion vector differences.
Through the geometric partitioning mode of adaptive area number, the compression efficiency of video encoding is improved, the encoding complexity is reduced, and the blocked artifacts at the boundaries of objects are reduced, and the video quality is improved.
Smart Images

Figure CN119815049A_ABST
Abstract
Description
[0001] This application is a divisional application of application number 202080025671.7, filing date January 28, 2020, and titled “Inter-frame prediction in geometric partitioning with adaptive number of regions”.
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0003] This application claims the benefit of priority to U.S. Provisional Patent Application No. 62 / 797,820, filed on January 28, 2019, entitled “INTER PREDICTION IN GEOMETRIC PARTITIONING WITH AN ADAPTIVE NUMBER OF REGIONS,” which is incorporated herein by reference in its entirety. Technical Field
[0004] The present invention relates generally to the field of video compression. In particular, the present invention relates to inter-frame prediction in geometric partitioning with an adaptive number of regions. Background Art
[0005] A video codec may include electronic circuitry or software that compresses or decompresses digital video. It can convert uncompressed video into a compressed format, and vice versa. In the context of video compression, a device that compresses a video (and / or performs some of its functions) may generally be referred to as an encoder, and a device that decompresses a video (and / or performs some of its functions) may be referred to as a decoder.
[0006] The format of the compressed data may conform to standard video compression specifications. Compression may be lossy in that the compressed video lacks some information present in the original video. Such consequences may include that the decompressed video may have a lower quality than the original uncompressed video because there is insufficient information to accurately reconstruct the original video.
[0007] There can be a complex relationship between video quality, the amount of data used to represent the video (e.g., determined by the bit rate), the complexity of the encoding and decoding algorithms, sensitivity to data loss and errors, ease of editing, random access, end-to-end delay (e.g., latency), and so on. Summary of the invention
[0008] In one aspect, a decoder includes a circuit configured to receive a bitstream; partition a current block into a first region, a second region, and a third region via a geometric partitioning pattern; determine a motion vector associated with a region of the first region, the second region, and the third region, wherein the determination further includes constructing a candidate list; and decode the current block using the determined motion vector.
[0009] In another aspect, a method includes receiving a bitstream by a decoder. The method includes partitioning, by the decoder, a current block into a first region, a second region, and a third region via a geometric partitioning pattern. The method includes determining, by the decoder, motion vectors associated with regions of the first region, the second region, and the third region, the determining including constructing a candidate list. The method includes decoding, by the decoder, the current block using the determined motion vectors.
[0010] The details of one or more variations of the subject matter described herein are set forth in the following drawings and detailed description.Other features and advantages of the subject matter described herein will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] For the purpose of illustrating the invention, the accompanying drawings show aspects of one or more embodiments of the invention. It should be understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown in the accompanying drawings, in which:
[0012] Figure 1 A diagram showing an example of a residual block (eg, a current block) that is geometrically partitioned, wherein there are three regions;
[0013] Figure 2 A schematic diagram showing example positions of possible spatial motion vector candidates relative to a first region (region S0) of an example current block partitioned according to geometric partitioning;
[0014] Figure 3 Shown with annotations Figure 2 , thereby showing the brightness position including the upper left brightness position of the first region S0;
[0015] Figure 4 A schematic diagram showing example positions of possible motion vector candidates relative to a second region S1 of an example current block partitioned according to geometric partitioning;
[0016] Figure 5 Shown with annotations Figure 4 , thereby showing the brightness position including the lower left brightness position of the third region S2 and the upper right brightness position of the second region S1;
[0017] Figure 6 A schematic diagram showing example positions of possible spatial motion vector candidates relative to a third region (region S2) of an example current block partitioned according to geometric partitioning;
[0018] Figure 7 Shown with annotations Figure 6 , thereby showing the brightness positions including the lower left brightness position of the third region S2 and the upper right brightness position of the second region S1; and
[0019] Figure 8 To illustrate a system block diagram of an example video encoder capable of encoding a video using inter-frame prediction and geometric partitioning with an adaptive number of regions;
[0020] Fig. 9 A process flow diagram is provided to illustrate an example process for encoding a video using geometric partitioning with an adaptive number of regions and inter-frame prediction, which may reduce encoding complexity while increasing compression efficiency in accordance with aspects of the present subject matter;
[0021] Fig.10 To illustrate a system block diagram of an example decoder capable of decoding a bitstream using inter-frame prediction and geometric partitioning with an adaptive number of regions, the example decoder can improve the complexity and processing performance of video encoding and decoding;
[0022] Fig.11 A process flow diagram for illustrating an example process for decoding a bitstream using inter-frame prediction and geometric partitioning with an adaptive number of regions, which example process can improve the complexity and processing performance of video encoding and decoding;
[0023] Fig.12 is a block diagram of a computing system that can be used to implement any one or more of the methods disclosed herein, and any one or more portions thereof.
[0024] The accompanying drawings are not necessarily drawn to scale and may be shown with dashed lines, schematic representations, and fragmentary views. In some cases, details that are not necessary for understanding the embodiments or that make other details difficult to perceive may have been omitted. The same reference numerals in the various figures represent the same elements. DETAILED DESCRIPTION
[0025] Some embodiments of the current subject matter include performing inter prediction with regions that have been partitioned with a geometric partitioning pattern with an adaptive number of regions, where a rectangular block can be divided into three or more non-rectangular regions. Performing inter prediction with non-rectangular blocks that have been partitioned with a geometric partitioning pattern with an adaptive number of regions can allow the partitioning to more closely follow object boundaries, resulting in lower motion compensated prediction errors, smaller residuals, and thus improved compression efficiency. During inter prediction, motion compensation can be performed using motion vectors predicted for blocks (e.g., coding units, prediction units, etc.) determined according to the geometric partitioning pattern. Motion vectors can be predicted using advanced motion vector prediction (AMVP) and / or via merge mode, where a motion vector is selected from a list of motion vector candidates without encoding motion vector differences.
[0026] The current subject matter may be adapted to larger blocks, such as, for example, blocks having 128×128 or 64×64 dimensions. In some embodiments, geometric partitioning may involve partitioning the current block into an adaptive number of regions, such as three or more regions given the current block; and motion information may be determined for each region.
[0027] Motion compensation may include a method of predicting a video frame or portion thereof taking into account previous and / or future frames of motion of a camera and / or objects in the video. Motion compensation may be used for encoding and decoding of video data for video compression, such as for encoding and decoding using the Moving Picture Experts Group (MPEG)-2 (also known as Advanced Video Coding (AVC)) standard. Motion compensation may describe an image with respect to a transformation from a reference image to a current image. The reference image may be previous or future when compared to the current image. Compression efficiency may be improved when pictures may be accurately synthesized from previously transmitted and / or stored pictures.
[0028] Block partitioning may refer to a method of video coding to find areas of similar motion. Some form of block partitioning is found in video codec standards, including MPEG-2, H.264 (also known as AVC or MPEG-4 Part 10), and H.265 (also known as High Efficiency Video Coding (HEVC)). In an example block partitioning approach, non-overlapping blocks of a video frame may be partitioned into rectangular sub-blocks to find block partitions that contain pixels with similar motion. This approach may work well when all pixels of a block partition have similar motion. Pixel motion in a block may be determined relative to a previously coded frame.
[0029] Motion vector prediction may be efficiently implemented in geometric partitioning with an adaptive number of regions. In more detail, geometric partitioning with an adaptive number of regions may include techniques for video encoding and decoding, where a rectangular block is further divided into two or more regions, which may be non-rectangular. For example, Figure 1A diagram showing an example of a residual block (e.g., a current block) 100 with geometric partitioning, wherein there are three segments S0, S1, and S2. The current block 100 may have a width of M pixels and a height of N pixels, labeled as M×N pixels, such as 64×64 or 128×128. The current block may be geometrically partitioned according to two line segments (P1P2 and P3P4), which may divide the current block into three regions S0, S1, and S2. When pixels in region S0 have similar motion, a motion vector may describe the motion of all pixels in the region. As described more fully below, the corresponding motion vector may be determined according to an AMVP mode or a merge mode. The motion vector may be used to compress region S0. Similarly, when pixels in region S1 have similar motion, a related motion vector may describe the motion of pixels in region S1. Similarly, when pixels in region S2 have similar motion, a related motion vector may describe the motion of pixels in region S2. Such geometric partitions may be signaled to a receiver (eg, a decoder) in a video bitstream by encoding the positions P1, P2, P3, P4 (or representations of these positions, such as using polar coordinates, indices into a predetermined template, or other characterization of the partitions).
[0030] Continue to refer Figure 1 , when video data is encoded using geometric partitioning at the pixel level, line segment P1P2 (or more specifically, points P1 and P2) can be determined. To determine the line segment P1P2 (or more specifically, points P1 and P2) that best divides the block when using geometric partitioning at the pixel level, the possible combinations of points P1 and P2 depend on the width M and height N of the block. For a block of size M×N, there are (Ml)×(Nl)×3 possible partitions. Therefore, identifying the correct partition can become a computationally expensive task for motion estimation to evaluate all possible partitions; compared to encoding using rectangular partitions (e.g., without geometric partitioning at the pixel level), this can increase the amount of time and / or processing power required to encode the video. The pixels that constitute the best or correct partition can be determined based on a metric and can vary from implementation to implementation.
[0031] In some embodiments and still with reference to Figure 1 , the partitioning occurs iteratively, i.e. a first partition forming two regions can be determined (e.g. determining the line P1P2 and the associated region), and one of these regions can then be further partitioned. Figure 1 The described partitioning may be performed to partition the block into two regions. One of these regions may be further partitioned (eg, to form new region S1 and region S2). The process may continue to perform block horizontal partitioning until a stopping criterion is reached.
[0032] Continue to refer Figure 1, inter-frame prediction can be performed using regions that have been geometrically partitioned. Motion vectors for motion compensation can be derived using AMVP or merge mode. In AMVP, motion vector prediction is performed by issuing an index into a motion vector candidate list, and the motion vector difference (e.g., residual) is encoded in the bitstream and included therein. In merge mode, a motion vector is selected from a motion vector candidate list without encoding the motion vector difference, allowing the current block to adopt the motion information of another previously decoded block. In both AMVP and merge mode, the candidate list can be constructed by both the encoder and the decoder, and the index in the candidate list is signaled in the bitstream.
[0033] Figure 2 Schematic diagram showing non-limiting example positions of potential spatial motion vector candidates relative to a first region (region S0) when the example current block 200 is partitioned according to geometric partitioning. Potential spatial motion vector candidates may be considered for constructing a motion vector candidate list during AMVP mode or merge mode. The current block 200 may be partitioned into three regions S0, S1, and S2 by straight lines between points P0, P1 and between points P2, P3, respectively. Each of region S0, region S1, and region S2 may be unidirectionally or bidirectionally predicted. Spatial candidates (e.g., Figure 2 ) may include a lower left candidate item A0, a left side candidate item A1, an upper left candidate item B2, an upper side candidate item B1 and an upper right candidate item B0.
[0034] Still refer to Figure 2 , as shown and in some embodiments, each position (A0, A1, B2, B1, and B0) may represent a block at the respective position. For example, the top left candidate B2 may be a block residing immediately to the left of and immediately above region S0; for example, if the luminance position of the top left corner of S0 is (0,0), then the top left candidate B2 may reside at position (-1,-1). The bottom left candidate A0 may be located immediately to the left and below P1; for example, if the luminance position of P1 is (P1x, P1y), then the bottom left candidate A0 may reside at position (Plx-1, Ply+1). The left candidate A1 may be located immediately to the left of P1; for example, the left candidate A1 may reside at position (Plx-1, Ply). The upper candidate B1 may be positioned immediately above P0; for example, if the luminance position of P0 is (P0x, P0y), then the upper candidate B1 may be located at (P0x, P0y-1). The upper right candidate B0 may be positioned immediately above and to the right of P0; for example, the upper right candidate B0 may reside at the position (P0x+1, P0y-1). Other positions are possible as will be apparent to one skilled in the art after reviewing the full text of this disclosure. Figure 3 Shown with annotations Figure 2 , thereby showing the luminance position including the upper left luminance position of the first region S0.
[0035] In some embodiments and still with reference to Figure 3 , when constructing the candidate list for region S0, some potential candidates may be automatically marked as unavailable and may be removed from the candidate list; because in the presence of geometric partitioning, such partitioning may be performed to partition regions (or objects) within a frame with different motion information. Therefore, it can be inferred that the blocks associated with these candidates also represent another object with different motion, and therefore these candidates may be automatically marked as unavailable (e.g., not further considered, removed from the candidate list, etc.). In the above reference Figure 2 In the example shown, with respect to region S0, the lower left candidate A0 may be automatically marked as unavailable because it is possible that region S0 does not share motion information with the block located at the lower left candidate A0. Similarly, with respect to region S0, the upper right candidate B0 may be automatically marked as unavailable because it is possible that region S0 does not share motion information with the block located at the upper right candidate B0. In some embodiments, by estimating the line segment P0P1 (or point P0, P1), for example, by determining the line segment P0P1, extending the line segment into the lower left candidate A0 block and / or the upper right candidate B0 block, and determining whether the lower left candidate A0 and / or the upper right candidate B0 reside on the same side of the extended line segment as the first region S0, it can be determined whether the lower left candidate A0 and / or the upper right candidate B0 are likely to share motion information.
[0036] Figure 4 Schematic diagram showing a non-limiting example of the location of potential spatial motion vector candidates relative to the second region (region S1) when the example current block 400 is partitioned according to geometric partitioning. The potential spatial motion vector candidates may be considered for constructing a motion vector candidate list during AMVP mode or merge mode. The current block 400 may have been partitioned into three regions S0, S1 and S2 through straight lines between points P0, P1 and between points P2, P3, respectively. Each of region S0, region S1 and region S2 may be unidirectionally or bidirectionally predicted. A non-limiting example of spatial candidates for the second region (region S1) is shown in Figure 4 and includes a lower left candidate A0, a left candidate A1, an upper left candidate B2, an upper candidate B1, and an upper right candidate B0.
[0037] As shown and still refer to Figure 4, each position (A0, A1, B2, B1, and B0) may represent a block at a corresponding position. For example, the upper left candidate B2 may be a block residing at a luma position that is immediately to the left and immediately above the upper leftmost position of region S1; for example, if the luma position of the upper left corner of S1 is adjacent P0 with luma position coordinates (P0x+1, P0y), then the upper left candidate B2 may reside at position (P0x, P0y-1). The lower left candidate A0 is positioned immediately below the lower leftmost position of the third region (region S2); for example, if the lower leftmost position of the third region (region S2) is at (0, Nl), then the lower left candidate A0 may reside at position (0, N). The left candidate A1 may be positioned immediately to the left of the lower leftmost position of the third region (region S2); for example, the left candidate A1 may reside at position (0, Nl). The upper candidate B1 may be positioned immediately above the upper rightmost position of region S1; for example, if the upper rightmost position of region S1 is at (M-1, 0), then B1 may reside at position (M-1, -1). The upper right candidate B0 may be positioned immediately above and to the right of the upper rightmost position of region S1; for example, the upper right candidate B0 may reside at position (M, -1). Figure 5 Shown with annotations Figure 4 , thereby showing the brightness position including the lower left brightness position of the third region S2 and the upper right brightness position of the second region S1.
[0038] In some embodiments and still with reference to Figure 5 , when constructing the candidate list for region S1, some potential candidates may be automatically marked as unavailable and may be removed from the candidate list; because in the presence of geometric partitioning, such partitioning may be performed to partition regions (or objects) within the frame with different motion information. Therefore, it can be inferred that the blocks associated with these candidates may represent another object with different motion, and therefore these candidates may be automatically marked as unavailable (e.g., not further considered, removed from the candidate list, etc.). In the above reference Figure 4 In one non-limiting example shown, with respect to region S1, the top left candidate B2 may be automatically marked as unavailable because it is possible that region S1 does not share motion information with a block located at the top left candidate B2. Similarly, in some embodiments, with respect to region S1, the left candidate A1 may be automatically marked as unavailable because it is possible that region S1 does not share motion information with a block located at the left candidate A1 (which may be the third region S2). Similarly, in some embodiments, with respect to region S1, the bottom left candidate A0 may be automatically marked as unavailable because it is possible that region S1 does not share motion information with a block located at the bottom left candidate A0 (which may be below the third region S2).
[0039] Figure 6 Schematic diagram showing example positions of potential spatial motion vector candidates relative to a third region (region S2) when the example current block 600 is partitioned according to geometric partitioning. Potential spatial motion vector candidates may be considered for constructing a motion vector candidate list during AMVP mode or merge mode. The current block 600 may be partitioned into three regions S0, S1, and S2 by straight lines between points P0, P1 and between points P2, P3, respectively. Each of region S0, region S1, and region S2 may be unidirectionally or bidirectionally predicted. Non-limiting examples of spatial candidates for the third region (region S2) are shown in Figure 6 and may include a lower left candidate A0, a left side candidate A1, an upper left candidate B2, an upper side candidate B1, and an upper right candidate B0.
[0040] As shown and still referenced Figure 6 , each position (A0, A1, B2, B1, and B0) may represent a block at the corresponding position. For example, the top left candidate may be a block residing at a luma position that is above and to the left of region S2; for example, the top left candidate B2 may be the first region S0. If S0 is located at (0,0), then the top left candidate B2 may be located at (0,0). The bottom left candidate A0 may be located immediately to the left of and immediately below the bottom left position of region S2; for example, if the bottom left position of region S2 is located at (0, Nl), then the bottom left candidate A0 may reside at (-1, N). The left candidate A1 may be located immediately to the left of the bottom left position of region S2; for example, the left candidate A1 may reside at (-1, Nl). The upper candidate B1 may be located above and to the left of region S2, which may be the neighboring point P1; for example, if P1 is located at (Plx, Ply), then the upper candidate B1 may be located at (Plx-1, Ply). The upper right candidate B0 may be a block residing at a luminance position that is above and to the right of region S2; for example, the upper right candidate B0 may be the second region S1. For example, the upper right candidate may be located at the upper rightmost position of S1, which may reside at (Ml, 0). Figure 7 Shown with annotations Figure 6 , thereby showing the brightness position including the lower left brightness position of the third region S2 and the upper right brightness position of the second region S1.
[0041] In some embodiments and still with reference to Figure 7, when constructing the candidate list for region S2, some potential candidates may be automatically marked as unavailable and may be removed from the candidate list; because in the presence of geometric partitioning, such partitioning may be performed to partition regions (or objects) within the frame with different motion information. Therefore, it can be inferred that the blocks associated with these candidates may represent another object with different motion, and therefore these candidates may be automatically marked as unavailable (e.g., not further considered, removed from the candidate list, etc.). In the above Figure 6 In one non-limiting example provided, for region S2, the top left candidate B2 may be automatically marked as unavailable because it is possible that region S2 does not share motion information with a block located at the top left candidate B2 (e.g., S0). Similarly, in some embodiments, for region S2, the top right candidate A0 may be automatically marked as unavailable because it is possible that region S2 does not share motion information with a block located at the left candidate B0 (which may be the second region S1). Similarly, in some embodiments, for region S2, the top candidate B1 may be automatically marked as unavailable because it is possible that region S2 does not share motion information with a block located at the top candidate B1 (which is to the left of the first region S0).
[0042] Figure 8 To illustrate a system block diagram of an example video encoder 800, the example video encoder 800 is capable of encoding a video using inter-frame prediction and geometric partitioning with an adaptive number of regions. The example video encoder 800 receives an input video 805, which may be initially segmented or divided according to a processing scheme, such as a tree-structured macroblock partitioning scheme (e.g., a quadtree plus a binary tree). An example of a tree-structured macroblock partitioning scheme may include partitioning an image frame into large block elements called coding tree units (CTUs). In some embodiments, each CTU may also be partitioned once or multiple times into multiple sub-blocks called coding units (CUs). The final result of such partitioning may include a group of sub-blocks that may be called prediction units (PUs). A transform tree (TU) may also be utilized. Such a partitioning scheme may include geometric partitioning with an adaptive number of regions according to some aspects of the current subject matter.
[0043] Still refer to Figure 8, the example video encoder 800 may include an intra prediction processor 815, a motion estimation / compensation processor 820 (also referred to as an inter prediction processor), a transform / quantization processor 825, an inverse quantization / inverse transform processor 830, an in-loop filter 835, a decoded picture buffer 840, and an entropy coding processor 845; the motion estimation / compensation processor 820 is capable of supporting geometric partitioning with an adaptive number of regions including AMVP mode and merge mode. In some embodiments, including using AMVP mode and merge mode, the motion estimation / compensation processor 820 may perform geometric partitioning with an adaptive number of regions. Bitstream parameters representing the geometric partitioning mode, AMVP mode, and merge mode may be input to the entropy coding processor 845 for inclusion in the output bitstream 850.
[0044] In operation and still refer to Figure 8 , for each block of a frame of the input video 805, a decision may be made as to whether the block is to be processed via intra-frame image prediction or using motion estimation / compensation. The block may be provided to an intra-frame prediction processor 810 or a motion estimation / compensation processor 820. If the block is to be processed via intra-frame prediction, the intra-frame prediction processor 810 may perform processing to output a predictor. If the block is to be processed via motion estimation / compensation, the motion estimation / compensation processor 820 may perform processing to output a predictor, the processing including the use of geometric partitioning with AMVP mode and merge mode.
[0045] Continue to refer Figure 8 , the residual may be formed by subtracting the predictor from the input video. The residual may be received by a transform / quantization processor 825, which may perform a transform process (e.g., a discrete cosine transform (DCT)) to produce coefficients, which may be quantized. The quantized coefficients and any related signaling information may be provided to an entropy coding processor 845 for entropy coding and included in an output bitstream 850. The entropy coding processor 845 may support encoding of signaling information related to geometric partitioning mode, AMVP mode, and merge mode. In addition, the quantized coefficients may be provided to an inverse quantization / inverse transform processor 830 that may reproduce the pixels, which may be combined with the predictor and processed by an in-loop filter 835, the output of which may be stored in a decoded picture buffer 840 for use by a motion estimation / compensation processor 820, which may be capable of supporting geometric partitioning mode, AMVP mode, and merge mode.
[0046] Fig. 91 is a process flow diagram illustrating an example process 300 for encoding a video by geometric partitioning and inter-frame prediction according to some aspects of the current subject matter, which can reduce encoding complexity while increasing compression efficiency. At step 910, a video frame can undergo initial block segmentation, such as using a tree-structured macroblock partitioning scheme, which can include partitioning the image frame into a plurality of CTUs and a plurality of CUs. At step 920, a block can be selected for geometric partitioning with an adaptive number of regions. The selection can include determining, based on a metric rule, that the block is to be processed according to a geometric partitioning mode.
[0047] At step 930 and still referring to Fig. 9 , a geometric partition having three or more regions may be determined. At least two line segments may be determined that separate the pixels included in the block into three or more regions (e.g., region 0, region 1, and region 2) according to their inter-frame motions, such that pixels (e.g., luminance samples) within each of the corresponding regions have similar motions that may be different from pixel motions within other regions (e.g., region 1).
[0048] At step 940 and continuing with reference Fig. 9 , the motion information of each region can be determined and processed using AMVP mode or merge mode. When processing a region using AMVP mode, a candidate list can be constructed by considering both spatial candidates and temporal candidates (which may include the spatial candidates described above and may include marking some candidates as unavailable). A motion vector can be selected from a list of motion vector candidates as a motion vector prediction, and a motion vector difference (e.g., a residual) may be calculated. An index to the candidate list can be determined. In merge mode, a candidate list can be constructed by considering both spatial candidates and temporal candidates (which may include the spatial candidates described above and may include marking some candidates as unavailable). A motion vector can be selected from a list of motion vector candidates for a region to adopt the motion information of another block. An index to the candidate list can be determined.
[0049] At step 950 and still referring to Fig. 9 , the determined geometric partitions and motion information may be signaled in the bitstream. Signaling the geometric partitions in the bitstream may include, for example, the positions of P0, P1, P2, P3; indices of one or more predetermined templates; and the like. When processing a region using AMVP, signaling of motion information may include including motion vector differences (e.g., residuals) and indices of motion vector candidate lists in the bitstream. When processing a region using merge mode, signaling of motion information may include including indices of motion vector candidate lists in the bitstream.
[0050] Fig.10To illustrate a system block diagram of an example decoder 1000, the example decoder 1000 is capable of decoding a bitstream 1070 using inter-frame prediction and geometric partitioning with an adaptive number of regions, which can improve the complexity and processing performance of video encoding and decoding. The decoder 1000 may include an entropy decoder processor 1010, an inverse quantization and inverse transform processor 1020, a deblocking filter 1030, a frame buffer 1040, a motion compensation processor 1050, and an intra-frame prediction processor 1060. In some embodiments, the bitstream 1070 may include parameters that represent a geometric partitioning mode, an AMVP mode, and a merge mode. Using the geometric partitioning as described herein, the motion compensation processor 1050 can reconstruct pixel information.
[0051] In operation and still refer to Fig.10 , the bitstream 1070 may be received by the decoder 1000 and input to the entropy decoder processor 1010, which may decode the bitstream into quantized coefficients. The quantized coefficients may be provided to the inverse quantization and inverse transform processor 1020, which may perform inverse quantization and inverse transform to form a residual signal. The residual signal may be added to the output of the motion compensation processor 1050 or the intra-frame prediction processor 1060 depending on the processing mode. The output of the motion compensation processor 1050 and the intra-frame prediction processor 1060 may include a block prediction value based on a previously decoded block. The sum of the prediction value and the residual may be processed by the deblocking filter 1030 and stored in the frame buffer 1040. For a given block (e.g., CU or PU), when the bitstream 1070 signals that the partition mode is geometric partitioning, the motion compensation processor 1050 may construct a prediction value based on the geometric partitioning method described herein.
[0052] Fig.11 To illustrate a process flow diagram of an example process 1100, the example process 1100 decodes a bitstream using inter-frame prediction in a geometric partitioning with an adaptive number of regions, which can improve the complexity and processing performance of video encoding and decoding. At step 1110, a bitstream is received, which may include a current block (e.g., CTU, CU, PU). The receiving operation may include extracting and / or parsing related signaling information of the current block and the bitstream. The decoder may extract or determine one or more parameters characterizing the geometric partitioning. These parameters may include, for example, the start and end indexes of the line segment (e.g., P0, P1, P2, P3). The extraction or determination operation may include identifying and obtaining parameters of the bitstream (e.g., parsing the bitstream).
[0053] At step 1120 and still referring to Fig.11, according to the geometric partition mode, a first region, a second region, and a third region of the current block may be determined. The determination operation may include determining whether the geometric partition mode is enabled for the current block (e.g., yes). If the geometric partition mode is not enabled (e.g., no), the decoder may process the block using an alternative partition mode. If the geometric partition mode is enabled (e.g., yes), three or more regions may be determined and / or processed.
[0054] At step 1130 and still referring to Fig.11 , a motion vector associated with a first region, a second region, and a region of the second region may be determined. Determining the motion vector may include determining whether to determine the motion information of the region using the AMVP mode or the merge mode. When the region is processed using the AMVP mode, a candidate list may be constructed by considering both spatial candidates and temporal candidates (which may include the spatial candidates described above and may include marking some candidates as unavailable). The motion vector may be selected from a list of motion vector candidates as a motion vector prediction; and a motion vector difference (e.g., a residual) may be calculated. In the merge mode, the operation may include constructing a candidate list of spatial candidates and temporal candidates for each region. Constructing the candidate list may include automatically marking the candidate as unavailable and removing the unavailable candidate from the candidate list. The index of the constructed candidate list may be parsed from the bitstream and used to select the final candidate from the candidate list. The motion information of the current region may be determined to be the same as the motion information of the final candidate (e.g., the motion vector of the region may be adopted from the final candidate).
[0055] Still refer to Fig.11 , in step 1140, the current block may be decoded using the determined motion vector.
[0056] Although some variations have been described in detail above, other modifications or additions are possible. For example, geometric partitioning can be signaled in the bitstream based on rate-distortion decisions in the encoder. Encoding can be based on a combination of regular predetermined partitions (e.g., templates), temporal and spatial predictions of partitions, and / or additional offsets. Each geometric partition region can utilize motion compensated prediction or intra-frame prediction. The boundaries of the prediction regions can be smoothed before adding residuals.
[0057] In some embodiments, a quadtree plus binary decision tree (QTBT) may be implemented. In QTBT, at the coding tree unit level, the partitioning parameters of the QTBT may be dynamically derived to adapt to local characteristics without transmitting any overhead. Subsequently, at the coding unit level, the joint classifier decision tree structure may eliminate unnecessary iterations and control the risk of false predictions. In some embodiments, at each leaf node of the QTBT, geometric partitioning with an adaptive number of regions may be available as an additional partitioning option.
[0058] In some embodiments, the decoder may include a partition processor that generates a geometric partition for the current block and provides all partition-related information for subordinate processes. The partition processor may directly affect motion compensation, since it may be performed piece-by-piece in the case of geometric partitioning of the block. In addition, the partition processor may provide shape information to the intra prediction processor and the transform coding processor.
[0059] In some embodiments, additional syntax elements may be signaled at different hierarchical levels of the bitstream. To enable geometric partitioning with an adaptive number of regions for the entire sequence, an enable flag may be encoded in the sequence parameter set (SPS). In addition, a CTU flag may be encoded at the coding tree unit (CTU) level to indicate whether any coding unit (CU) utilizes geometric partitioning with an adaptive number of regions. A CU flag may be encoded to indicate whether the current coding unit utilizes geometric partitioning with an adaptive number of regions. Parameters for line segments on a specified block may be encoded. For each region, a flag may be decoded, which may specify whether the current region is inter-frame or intra-frame predicted.
[0060] In some implementations, a minimum region size may be specified.
[0061] The subject matter described herein provides many technical advantages. For example, some embodiments of the current subject matter can provide partitioning of blocks, which reduces complexity while increasing compression efficiency. In some embodiments, blocking artifacts at object boundaries can be reduced.
[0062] It is noted that any one or more of the aspects and embodiments described herein may be conveniently implemented using digital electronic circuitry, integrated circuits, specially designed application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), computer hardware, firmware, software, and / or combinations thereof, as implemented and / or implemented in one or more machines (e.g., one or more computing devices (the one or more computing devices being user computing devices for electronic files), one or more server devices (such as file servers), etc.), the one or more machines being programmed according to the teachings of this specification, as will be apparent to those of ordinary skill in the computer arts. These various aspects or features may include implementation in one or more computer programs and / or software, the one or more computer programs and / or software being executable and / or interpretable on a programmable system including at least one programmable processor, the at least one programmable processor being connectable for special and general purposes to receive data and instructions from and transmit data and instructions to a storage system, at least one input device, and at least one output device. Appropriate software coding may be readily prepared by skilled programmers based on the teachings of this disclosure, as will be apparent to those of ordinary skill in the software arts. The aspects and embodiments discussed above that employ software and / or software modules may also include appropriate hardware for facilitating the implementation of machine-executable instructions of the software and / or software modules.
[0063] Such software may be a computer program product using a machine-readable storage medium. A machine-readable storage medium may be any medium capable of storing and / or encoding a sequence of instructions executed by a machine (e.g., a computing device) and causing the machine to execute any of the methods and / or embodiments described herein. Examples of machine-readable storage media include, but are not limited to, disks, optical disks (e.g., CDs, CD-Rs, DVDs, DVD-Rs, etc.), magneto-optical disks, read-only memory "ROM" devices, random access memory "RAM" devices, magnetic cards, optical cards, solid-state storage devices, EPROMs, EEPROMs, programmable logic devices (PLDs), and / or any combination thereof. As used herein, machine-readable media is intended to include a single medium, and a collection of physically independent media, such as, for example, a collection of a combination of a compressed disk or one or more hard disk drives and a computer memory. As used herein, a machine-readable storage medium does not include signal transmission in a temporary form.
[0064] Such software may also include information (e.g., data) carried as a data signal on a data carrier (such as a carrier wave). For example, machine executable information may be included as a data bearing signal embodied in a data carrier, wherein the signal encodes a sequence of instructions or a portion thereof executed by a machine (e.g., a computing device), and any related information (e.g., data structures and data) that causes the machine to perform any of the methods and / or embodiments described herein.
[0065] Examples of computing devices include, but are not limited to, electronic book reading devices, computer workstations, terminal computers, server computers, handheld devices (e.g., tablet computers, smart phones, etc.), network equipment, network routers, network switches, network bridges, any machine capable of executing a sequence of instructions that specifies actions to be taken by the machine, and any combination thereof. In one example, the computing device may include and / or may be included in a kiosk.
[0066] Fig.12 A schematic representation of one embodiment of a computing device in the exemplary form of a computer system 1200 is shown within which a set of instructions may be executed for causing a control system to perform any one or more of the aspects and / or methods of the present disclosure. It is also contemplated that a plurality of computing devices may be used to implement a specially configured set of instructions for causing one or more of the devices to perform any one or more of the aspects and / or methods of the present disclosure. The computer system 1200 includes a processor 1204 and a memory 1208 that communicate with each other and with other components via a bus 1212. The bus 1212 may include any of several types of bus structures, including but not limited to a memory bus, a memory controller, a peripheral bus, a local bus, and any combination thereof, utilizing any of a variety of bus architectures.
[0067] The memory 1208 may include various components (e.g., machine-readable media), including, but not limited to, random access memory components, read-only components, and any combination thereof. In one example, a basic input / output system 1216 (BIOS), including basic paths that facilitate the transfer of information between elements within the computer system 1200, such as during startup, may be stored in the memory 1208. The memory 1208 may also include instructions (e.g., software) 1220 (e.g., stored on one or more machine-readable media) that implement any one or more of the aspects and / or methods of the present disclosure. In another example, the memory 1208 may also include any number of program modules, including, but not limited to, an operating system, one or more application programs, other program modules, program data, and any combination thereof.
[0068] The computer system 1200 may also include a storage device 1224. Examples of storage devices (e.g., storage device 1224) include, but are not limited to, hard disk drives, disk drives, optical disk drives combined with optical media, solid-state memory devices, and any combination thereof. The storage device 1224 may be connected to the bus 1212 via an appropriate interface (not shown). Example interfaces include, but are not limited to, SCSI, Advanced Technology Attachment (ATA), Serial ATA, Universal Serial Bus (USB), IEEE 1394 (Firewire), and any combination thereof. In one example, the storage device 1224 (or one or more of its components) may be removably connected to the computer system 1200 (e.g., via an external port connector (not shown)). In particular, the storage device 1224 and associated machine-readable media 1228 may provide non-volatile and / or volatile storage of machine-readable instructions, data structures, program modules, and / or other data to the computer system 1200. In one example, the software 1220 may reside entirely or partially in the machine-readable medium 1228. In another example, the software 1220 may reside completely or partially within the processor 1204 .
[0069] The computer system 1200 may also include an input device 1232. In one example, a user of the computer system 1200 may input commands and / or other information to the computer system 1200 via the input device 1232. Examples of the input device 1232 include, but are not limited to, an alphanumeric input device (e.g., a keyboard), a pointing device, a joystick, a game pad, an audio input device (e.g., a microphone, a voice response system, etc.), a cursor control device (e.g., a mouse), a touch pad, an optical scanner, a video capture device (e.g., a still camera, a video camera), a touch screen, and any combination thereof. The input device 1232 may be connected to the bus 1212 via any of a variety of interfaces (not shown), including, but not limited to, a serial interface, a parallel interface, a game port, a USB interface, a FireWire interface, a direct interface to the bus 1212, and any combination thereof. The input device 1232 may include a touch screen interface, which may be part of or separate from the display 1236 discussed further below. The input device 1232 may be used as a user selection device for selecting one or more graphical representations of the graphical interface as described above.
[0070] The user may also input commands and / or other information to the computer system 1200 via a storage device 1224 (e.g., a removable disk drive, a flash drive, etc.) and / or a network interface device 1240. A network interface device (such as network interface device 1240) may be used to connect the computer system 1200 to one or more of a variety of networks, such as network 1244, and one or more remote devices 1248 connected thereto. Examples of network interface devices include, but are not limited to, a network interface card (e.g., a mobile network interface card, a LAN card), a modem, and any combination thereof. Examples of networks include, but are not limited to, a wide area network (e.g., the Internet, an enterprise network), a local area network (e.g., a network associated with an office, a building, a campus, or other smaller geographic space), a telephone network, a data network associated with a telephone / voice provider (e.g., a mobile communications provider data and / or voice network), a direct connection between two computing devices, and any combination thereof. A network (such as network 1244) may employ wired and / or wireless communication modes. In general, any network topology may be used. Information (eg, data, software 1220 , etc.) may be communicated to and / or from computer system 1200 via network interface device 1240 .
[0071] The computer system 1200 may also include a video display adapter 1252 for communicating displayable images to a display device, such as a display device 1236. Examples of display devices include, but are not limited to, liquid crystal displays (LCDs), cathode ray tubes (CRTs), plasma displays, light emitting diode (LED) displays, and any combination thereof. The display adapter 1252 and the display device 1236 may be used in conjunction with the processor 1204 to provide graphical representations of some aspects of the present disclosure. In addition to the display device, the computer system 1200 may also include one or more other peripheral output devices, including, but not limited to, audio speakers, printers, and any combination thereof. Such peripheral output devices may be connected to the bus 1212 via a peripheral interface 1256. Examples of peripheral interfaces include, but are not limited to, serial ports, USB connections, FireWire connections, parallel connections, and any combination thereof.
[0072] The foregoing has described the exemplary embodiments of the present invention in detail. Various modifications and additions may be made without departing from the spirit and scope of the present invention. The features of each of the various embodiments described above may be combined with the features of other described embodiments, where appropriate, to provide a variety of feature combinations of associated new embodiments. In addition, although the foregoing describes a plurality of independent embodiments, the content described herein only illustrates the application of the principles of the present invention. In addition, although the specific methods herein may be shown and / or described as being performed in a particular order, the order is highly variable within the technical scope of the embodiments disclosed herein to implement the common technology. Therefore, this description is intended to be carried out only in an exemplary manner, rather than to limit the scope of the present invention in other ways.
[0073] In the above description and claims, phrases such as "at least one of..." or "one or more of..." may appear after a list of linked elements or features. The term "and / or" may also appear in a list of two or more elements or features. Unless implicitly or explicitly contradictory to the context of use, such phrases are intended to mean any one of the listed elements or features alone, or to mean any one of the narrated elements or features combined with any other narrated elements or features. For example, the phrases "at least one of A and B", "one or more of A and B", and "A and / or B" are all intended to mean "single A, single B, or both A and B". Similar explanations are also intended to be used for lists including three or more items. For example, the phrases "at least one of A, B, and C", "one or more of A, B, and C", and "A, B, and / or C" are all intended to mean "single A, single B, single C, both A and B, both A and C, both B and C, or three A and B and C". Furthermore, the term “based on” as used above and in the claims is intended to mean “based, at least in part, on” such that unlisted features and elements are also permissible.
[0074] The subject matter described herein can be implemented in systems, devices, methods and / or articles, depending on the desired configuration. The embodiments described in the foregoing description do not represent all embodiments consistent with the subject matter described herein. On the contrary, they are only some examples consistent with the aspects related to the described subject matter. Although some variations have been described in detail above, other modifications or additions are possible. In particular, in addition to those features described herein, other features and / or variations may also be provided. For example, the embodiments described above may relate to various combinations and subcombinations of the disclosed features and / or combinations and subcombinations of some other features disclosed above. In addition, the logical flow shown in the drawings and / or described herein does not necessarily require the specific order or sequential order shown to achieve the desired result. Other embodiments may fall within the scope of the following claims.
Claims
1. A method for transmitting a coded bitstream for decoding by a compatible decoder, the coded bitstream comprising a current image, the current image further comprising a current block, the current block having at least a first partition boundary, the at least first partition boundary partitioning the current block into a first non-rectangular region and a second non-rectangular region, and a second partition boundary intersecting the at least first partition boundary, the second partition boundary partitioning the second non-rectangular region to partition the current block into three parts, wherein the decoder is configured to: receiving a bitstream, wherein the bitstream comprises a current image, the current image comprises a current block, the current block having at least a first partition boundary, the at least first partition boundary partitioning the current block into a first non-rectangular region and a second non-rectangular region, and a second partition boundary, the second partition boundary being non-parallel to and intersecting the first partition boundary, and the second partition boundary partitioning the second non-rectangular region to partition the current block into three non-rectangular regions; determining a first predictor for use on a first side of the first partition boundary using a first motion vector selected from a first motion vector candidate list; determining a second predictor for use on a second side of the first partition boundary using a second motion vector selected from a second motion vector candidate list; A third predictor used on one side of the second partition boundary is determined using a third motion vector selected from the third motion vector candidate list. The method of claim 1 , wherein the current block is a current coding tree unit. The method of claim 1 , wherein the first partition comprises a first geometric partition. The method of claim 1 , wherein the second partition comprises a second geometric partition.
5. A method for transmitting an encoded bitstream, the encoded bitstream comprising a current image, the current image comprising a current block, the current block having a block size of N×N, wherein N is equal to 64 or 128, and the current block having at least a first geometric partition boundary, the at least first geometric partition boundary partitioning the current block into a first non-rectangular region and a second non-rectangular region, and a second geometric partition boundary, the second geometric partition boundary intersecting the at least first geometric partition boundary, the second geometric partition boundary partitioning the second non-rectangular region to partition the current block into three parts; an encoder comprising circuitry configured to encode a bitstream for decoding by a compatible decoder, wherein the decoder is configured to: Receiving the encoded bit stream; determining a first predictor to be used within the first non-rectangular region using a first motion vector selected from a first motion vector candidate list; determining a second predictor to be used within the second non-rectangular region using a second motion vector selected from the second motion vector candidate list; as well as The current block is decoded using the first predictor and the second predictor, wherein decoding further comprises smoothing the first predictor and the second predictor across the at least first geometric partition boundary. The method of claim 5 , wherein the current block is a current coding tree unit.