Intra prediction with geometric partitions

JP2024505322A5Active Publication Date: 2025-01-31INTERDIGITALCE PATENT HLDG SAS
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023523592
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2020-11-18
Filing Date
2021-11-10
Publication Date
2025-01-31
Estimated Expiration
2041-11-10

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies struggle to efficiently handle complex image blocks with varying orientations and smoothness properties, leading to poor prediction accuracy and increased overhead due to the use of single angular or non-angular modes.

Method used

Implementing geometric partition-based intra-prediction that divides blocks into multiple partitions using straight lines, applies adaptive intra-prediction modes to each partition, and adjusts sample values along the partition boundaries with blending processes.

Benefits of technology

Improves prediction accuracy and reduces overhead by better aligning with the complex features of natural images, enhancing compression efficiency and reducing unnecessary data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

In one implementation, when coding a block in intra prediction mode, the block may be divided into two subpartitions by a geometrically arranged straight line. Each geometric partition in a CU is intra predicted using its own intra mode with its available reference samples. One subpartition copies and uses the intra prediction mode from the parent block, and another subpartition uses another implicitly or explicitly signaled intra prediction mode. After predicting the geometric partition, the sample values ​​along the partition boundary are adjusted using a blending process with adaptive weights. The geometric partition-based intra prediction may be applied to one angular intra prediction mode, or only to one negative direction intra prediction mode, or only to one specific intra prediction mode (e.g., mode 34). Transform selection or other intra coding tools (i.e., intra subpartition) may be adapted to the geometric partition-based intra prediction.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present embodiments generally relate to methods and apparatus for intra prediction with geometric partitions in video encoding or decoding. [Background technology]

[0002] To achieve high compression efficiency, image and video coding schemes usually employ prediction and transformation to exploit spatial and temporal redundancy in video content. In general, intra- or inter-prediction is used to exploit intra- or inter-picture correlation, and then the difference between the original block and the predicted block, often called the prediction error or prediction residual, is transformed, quantized, and entropy coded. 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

[0003] According to one embodiment, a method for encoding or decoding a video is provided, the method including: dividing a block of a picture into at least two partitions by a straight line; performing intra prediction on a first partition of the at least two partitions using a first intra prediction mode to obtain a predicted sample for the first partition; performing intra prediction on a second partition of the at least two partitions using a second intra prediction mode to obtain a predicted sample for a second partition of the at least two partitions; and adjusting the predicted sample value along the straight line using a mixing process with adaptive weights.

[0004] According to another embodiment, an apparatus for video encoding or decoding is presented, comprising one or more processors, configured to divide a block of a picture into at least two partitions by a straight line, perform intra prediction using a first intra prediction mode on the first partition to obtain a predicted sample for the first partition of the at least two partitions, perform intra prediction using a second intra prediction mode on the second partition to obtain a predicted sample for a second partition of the at least two partitions, and adjust the predicted sample value along the straight line using a mixing process with adaptive weights.

[0005] According to another embodiment, a video encoding or decoding apparatus is presented, comprising: means for dividing a block of a picture into at least two partitions by a straight line; means for performing intra prediction using a first intra prediction mode on a first partition to obtain a prediction sample for the first partition of the at least two partitions; means for performing intra prediction using a second intra prediction mode on the second partition to obtain a prediction sample for a second partition of the at least two partitions; and means for adjusting the prediction sample value along the straight line using a mixing process with adaptive weights.

[0006] One or more embodiments also provide a computer program comprising instructions that, when executed by one or more processors, cause the one or more processors to perform an encoding method or a decoding method according to any of the previously described embodiments. One or more of the embodiments also provide a computer readable storage medium having stored thereon instructions for encoding or decoding video data according to the methods described above.

[0007] One or more embodiments also provide a computer readable storage medium having stored thereon a bitstream generated by the methods described above. One or more embodiments also provide methods and apparatus for transmitting or receiving a bitstream generated according to the methods described above. [Brief description of the drawings]

[0008] [Figure 1] 1 shows a block diagram of a system in which aspects of the present embodiments may be implemented; [Diagram 2] 1 shows a block diagram of one embodiment of a video encoder. [Diagram 3] 2 shows a block diagram of one embodiment of a video decoder. [Figure 4] 1 illustrates the concepts of a Coding Tree Unit (CTU) and a Coding Unit (CU) for representing a compressed VVC picture. [Diagram 5] 1 shows reference samples for intra prediction in VVC. [Figure 6] 1 shows the intra prediction direction in VVC for a square target block. [Figure 7] 3 shows 32 angles in geometric modes for inter prediction in VVC. [Figure 8] 1 shows a geometric partitioning description. [Figure 9] A geometric partition with angle 12 and distance 0-3 is shown. [Figure 10] 1 illustrates an example of non-rectangular partitioning of a portion of a picture. [Figure 11] 1 shows an example of a piecewise smooth image model. [Figure 12] 1 illustrates diagonal partition-based intra prediction. [Figure 13] 1 illustrates a method for diagonal partition-based intra prediction in an encoder according to one embodiment. [Figure 14]1 illustrates a process for generating diagonal partition-based intra-prediction blocks according to one embodiment. [Figure 15] 1 illustrates a proposed diagonal partition-based intra prediction process in a decoder according to one embodiment. [Figure 16] 13 illustrates how to determine partition 0 according to a negative intra-prediction mode of a parent intra CU according to one embodiment. [Figure 17] An example is shown in which partition 1 is a symmetric triangular partition. [Figure 18] An example is shown in which partition 1 is an asymmetric triangular partition. [Figure 19] Here is an example where cu_sbp_mode is implicit as the horizontal / vertical mode when partition 1 is an asymmetric triangular partition. [Figure 20] Here is an example where both Left and Above modes are available. [Figure 21] FIG. 21(a) shows an example where only the Left adjacent mode is available, FIG. 21(b) shows an example where only the Above adjacent mode is available, and FIG. 21(c) shows an example where the Left mode and the Above mode are the same. [Figure 22] 13 illustrates an example of a blending mask for intra-diagonal partitions, according to one embodiment. [Figure 23] 13 illustrates another example of a blending mask for intra-diagonal partitions, according to one embodiment. [Figure 24] 13 illustrates another example of mixing coefficients for intra-diagonal partitions, according to one embodiment. [Diagram 25] 1 illustrates an example where the partition boundary is parallel to the intra prediction mode of the intra geometric partition according to one embodiment. [Figure 26] 13 illustrates an example in which the division boundary of an intra-geometric partition is indicated by cu_sbp_boundary, according to one embodiment. [Figure 27]1 illustrates three pre-defined split starting positions for geometric partition based intra prediction according to one embodiment. [Figure 28] 1 illustrates an arbitrary split starting position for geometric partition based intra prediction according to one embodiment. [Figure 29] 13 shows an example of determining partition 0 according to the areas of these two child partitions according to one embodiment. [Diagram 30] 1 illustrates an example of a geometric partition for forward intra-prediction mode, according to one embodiment. [Diagram 31] 13 illustrates an example in which a partition boundary is indicated by cu_sbp_boundary for a forward intra-prediction mode according to one embodiment. [Diagram 32] 1 illustrates an intra-prediction mode search process in an encoder, according to one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0009] FIG. 1 illustrates a block diagram of an example of a system in which various aspects and embodiments may be implemented. System 100 may be embodied as a device including various components described below and configured to perform one or more of the aspects described herein. Examples of such devices include various electronic devices, such as, but not limited to, personal computers, laptop computers, smartphones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected appliances, and servers. The elements of system 100, alone or in combination, may be embodied in a single integrated circuit, multiple ICs, and / or separate components. For example, in at least one embodiment, the processing elements and encoder / decoder elements of system 100 are distributed across multiple ICs and / or separate components. In various embodiments, system 100 is communicatively coupled to other systems or other electronic devices, for example, via a communication bus or through dedicated input and / or output ports. In various embodiments, system 100 is configured to implement one or more of the aspects described herein.

[0010] The system 100 includes at least one processor 110 configured to execute instructions loaded therein, for example, to implement various aspects described herein. The processor 110 may include embedded memory, input / output interfaces, and various other circuits as known in the art. The system 100 includes at least one memory 120 (e.g., volatile and / or non-volatile memory devices). The system 100 includes a storage device 140, which may include non-volatile and / or volatile memory, including, but not limited to, EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash, magnetic disk drives, and / or optical disk drives. The storage device 140 may include, by way of non-limiting example, an internal storage device, an attached storage device, and / or a network-accessible storage device.

[0011] System 100 includes, for example, an encoder / decoder module 130 configured to process data to provide encoded or decoded video, which may include its own processor and memory. Encoder / decoder module 130 represents a module that may be included within a device to perform encoding and / or decoding functions. As is known, a device may include one or both of an encoding and decoding module. Additionally, encoder / decoder module 130 may be implemented as a separate element of system 100 or may be incorporated within processor 110 as a combination of hardware and software, as is known to those skilled in the art.

[0012] Program code to be loaded onto the processor 110 or the encoder / decoder 130 to perform various aspects described herein may be stored in the storage device 140 and then loaded onto the memory 120 for execution by the processor 110. According to various embodiments, one or more of the processor 110, the memory 120, the storage device 140, and the encoder / decoder module 130 may store one or more of various items during execution of the processes described herein. 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, expressions, operations, and operational logic.

[0013] In some embodiments, memory internal to the processor 110 and / or the encoder / decoder module 130 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 either the processor 110 or the encoder / decoder module 130) is used for one or more of these functions. The external memory may be the memory 120 and / or the storage device 140, e.g., dynamic volatile memory and / or non-volatile flash memory. In some embodiments, the external non-volatile flash memory is used to store the television's operating system. In at least one embodiment, a high-speed external dynamic volatile memory, such as RAM, is used as working memory for video coding and decoding operations, such as MPEG-2, HEVC, or VVC.

[0014] Input to the elements of system 100 may be provided through various input devices, as indicated at block 105. Such input devices may include, but are not limited to, (i) an RF section that receives, for example, an RF signal transmitted over the air by a broadcast station, (ii) a composite input, (iii) a USB input, and / or (iv) an HDMI input.

[0015] In various embodiments, the input devices of block 105 have associated respective input processing elements as known in the art. For example, the RF section may be associated with elements suitable for (i) selecting a desired frequency (also referred to as selecting a signal or band-limiting a signal to a frequency band), (ii) down-converting the selected signal, (iii) band-limiting again to a narrower frequency band to select a signal frequency band that may be referred to (for example) as a channel in a particular embodiment, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired stream of data packets. The RF section of various embodiments includes one or more elements that perform 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 these various functions, including, for example, down-converting a received signal to a lower frequency (e.g., an intermediate frequency or a near baseband frequency) or to baseband. In one embodiment of a set-top box, the RF section and its associated input processing elements perform frequency selection by receiving, filtering, downconverting, and refiltering RF signals transmitted over a wired (e.g., cable) medium to a desired frequency band. Various embodiments rearrange the order of the above-described (and other) elements, remove some of these elements, and / or add other elements that perform similar or different functions. Adding elements may include inserting elements between existing elements, for example, inserting amplifiers and analog-to-digital converters. In various embodiments, the RF section includes an antenna.

[0016] In addition, the USB and / or HDMI terminals may include respective interface processors for connecting the system 100 to other electronic devices across USB and / or HDMI connections. It should be understood that various aspects of the input processing, e.g., Reed-Solomon error correction, may be implemented, for example, in separate input processing ICs or in the processor 110, as desired. Similarly, aspects of the USB or HDMI interface processing may be implemented, for example, in separate interface ICs or in the processor 110, as desired. The demodulated, error corrected, and demultiplexed stream is provided to various processing elements, including, for example, the processor 110 and an encoder / decoder 130, which operates in combination with memory and storage elements to process the data stream as desired for presentation on an output device.

[0017] The various elements of system 100 may be provided within an integrated housing in which the various elements may be interconnected and transmit data between each other using suitable connection arrangements 115, e.g., internal buses known in the art, including I2C buses, wiring, and printed circuit boards.

[0018] System 100 includes a communication interface 150 that enables communication with other devices over a communication channel 190. Communication interface 150 may include, but is not limited to, a transceiver configured to transmit and receive data over communication channel 190. Communication interface 150 may include, but is not limited to, a modem or a network card, and communication channel 190 may be implemented in a wired and / or wireless medium, for example.

[0019] Data is streamed to system 100 in various embodiments using a Wi-Fi network, such as IEEE 802.11. The Wi-Fi signal in these embodiments is received over communication channel 190 and communication interface 150, which are adapted for Wi-Fi communication. Communication channel 190 in these embodiments is typically connected to an access point or router that provides access to external networks, including the Internet, to enable streaming applications and other over-the-top communications. In other embodiments, streaming data is provided to system 100 using a set-top box that delivers data via an HDMI connection in input block 105. In yet other embodiments, streaming data is provided to system 100 using an RF connection in input block 105.

[0020] System 100 may provide output signals to various output devices, including display 165, speakers 175, and other peripheral devices 185. Other peripheral devices 185, in various example embodiments, include one or more of a standalone DVR, a disc player, a stereo system, a lighting system, and other devices that provide functionality based on the output of system 100. In various embodiments, control signals are communicated between system 100 and display 165, speakers 175, or other peripheral devices 185 using signaling such as AV.Link, CEC, or other communication protocols that allow inter-device control with or without user intervention. Output devices may be communicatively coupled to system 100 via dedicated connections through respective interfaces 160, 170, and 180. Alternatively, output devices may be connected to system 100 via communication interface 150 using communication channel 190. Display 165 and speakers 175 may be integrated into a single unit with other components of system 100, for example, in an electronic device such as a television. In various embodiments, the display interface 160 includes a display driver, such as a timing controller (TCon) chip.

[0021] Display 165 and speakers 175 may alternatively be separate from one or more of the other components, for example, if the RF portion of input 105 is part of a separate set-top box. In various embodiments in which display 165 and speakers 175 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.

[0022] 2 shows an example of a video encoder 200, such as a Versatile Video Coding (VVC) encoder. FIG. 2 may also show an encoder that has improvements to the VVC standard or that employs techniques similar to VVC.

[0023] In this application, the terms "reconstructed" and "decoded" may be used interchangeably, the terms "encoded" and "coded" may be used interchangeably, and the terms "image", "picture", and "frame" may be used interchangeably. Usually, but not necessarily, the term "reconstructed" is used on the encoder side, while the term "decoded" is used on the decoder side.

[0024] Before being encoded, a video sequence may undergo pre-encoding processing (201), such as applying a color transformation to the input color picture (e.g., converting from RGB 4:4:4 to YCbCr 4:2:0) or performing a remapping of the input picture components 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 attached to the bitstream.

[0025] In the encoder 200, a picture is coded by the encoder elements as described below. The picture to be coded is divided (202) into units, e.g., CUs, and processed. Each unit is coded, e.g., using either intra mode or inter mode. When a unit is coded in intra mode, it performs intra prediction (260). In inter mode, motion estimation (275) and motion compensation (270) are performed. The encoder decides (205) whether to use intra mode or inter mode to code the unit, and indicates the intra / inter decision, e.g., by a prediction mode flag. A prediction residual is calculated (210), e.g., by subtracting the predicted block from the original image block.

[0026] The prediction residual is then transformed (225) and quantized (230). The quantized transform coefficients, as well as the motion vectors and other syntax elements, are entropy coded (245) to output a bitstream. The encoder can skip the transform and apply quantization directly to the untransformed residual signal. The encoder can bypass both the transform and quantization, i.e., the residual is coded directly without applying a transform or quantization process.

[0027] The encoder decodes the coded block to provide a reference for further prediction. The quantized transform coefficients are dequantized (240) and inverse transformed (250) to decode the prediction residual. The decoded prediction residual and the predicted block are combined (255) to reconstruct an image block. An in-loop filter (265) is applied to the reconstructed picture to perform, for example, deblocking / Sample Adaptive Offset (SAO) filtering to reduce coding artifacts. The filtered image is stored in a reference picture buffer (280).

[0028] Figure 3 shows a block diagram of an exemplary video decoder 300. In the decoder 300, the bitstream is decoded by decoder elements, as described below. The video decoder 300 generally performs a decoding pass that is the inverse of the encoding pass, as described in Figure 2. The encoder 200 also generally performs video decoding as part of encoding the video data.

[0029] In particular, the decoder's input includes a video bitstream, which may be generated by the video encoder 200. The bitstream is first entropy decoded (330) to obtain transform coefficients, motion vectors, and other coding information. Picture partition information indicates how the picture is partitioned. The decoder may then partition the picture according to the decoded picture partition information (335). The transform coefficients are inverse quantized (340) and inverse transformed (350) to decode the prediction residual. The decoded prediction residual and the predicted block are combined (355) to reconstruct an image block. A prediction block can be obtained (370) from intra prediction (360) or motion compensated prediction (i.e., inter prediction) (375). An in-loop filter (365) is applied to the reconstructed image. The filtered image is stored in a reference picture buffer (380).

[0030] The decoded picture may further undergo post-decoding processing (385), such as an inverse color conversion (e.g., from YCbCr 4:2:0 to RGB 4:4:4) or inverse remapping that performs the inverse of the remapping process performed in the pre-encoding processing (201). The post-decoding processing may use metadata derived in the pre-encoding processing and signaled in the bitstream.

[0031] As mentioned above, in VVC video compression, a picture is divided into so-called coding tree units (CTUs), and each CTU is represented in the compressed domain by one or more coding units (CUs), as shown in Figure 4. Each CU is then given some intra- or inter-prediction parameters (prediction information).

[0032] In intra prediction, a CU is spatially predicted from its causal neighboring CUs, i.e., the decoded CUs above and to the left of the current CU. For that purpose, VVC uses a simple spatial model called prediction modes. Based on the decoded pixel values ​​in the above and left CUs, called reference pixels, the encoder constructs different predictions of the target block and selects the prediction that results in the best RD performance. Of the 95 predefined modes, one is a planar mode (indexed as mode 0), one is a DC mode (indexed as mode 1), and the remaining 93 (indexed as modes -14...-1, 2...80) are angular modes. The angular modes aim to model the directional structure of objects in a frame. Thus, the decoded pixel values ​​in the above and left CUs are simply repeated along the predefined directions to fill the target CU.

[0033] Angular prediction modes may describe image regions that contain object structures with different orientations. Planar and DC modes describe constant and gradually changing regions without specific orientation. However, there may be blocks in a frame that contain parts of objects and background, or parts of the same or multiple objects with different orientations. Such blocks usually cannot be adequately described by a single angular mode or non-angular modes (i.e., planar and DC modes). In the following, intra prediction and geometric partitions in VVC are briefly presented. For ease of reference, the terms "CU" and "block" are used interchangeably throughout the text.

[0034] Intra Prediction in VVC The intra prediction process in VVC consists of three steps: (1) reference sample generation, (2) intra sample prediction, and (3) post-processing of predicted samples. The reference sample generation process is shown in Figure 5. The reference pixel value at coordinates (x, y) is denoted by R(x, y) in the figure. For a CU with size WxH, where W and H denote width and height respectively, a row of 2W decoded samples is formed on the top from the previously reconstructed upper and top-right pixels to the current CU. Similarly, a column of 2H samples on the left is formed from the reconstructed left and bottom-left pixels. The corner pixel at the top-left position is also used to fill the gap between the upper row reference and the left column reference.

[0035] The next step, i.e., intra-sample prediction, consists of predicting the pixels of the target CU based on the reference samples. As mentioned before, to efficiently predict different kinds of content, VVC supports various prediction modes. Planar and DC prediction modes are used to predict smooth and gradually changing regions, and angular prediction modes are used to capture different directional structures. VVC supports 95 directional prediction modes indexed from -14 to -1 and 2 to 80. For square CUs, only prediction modes 2 to 66 are used. These prediction modes correspond to different prediction directions from 45 degrees to -135 degrees clockwise, as shown in FIG. 6. The numbers indicate the prediction mode index associated with the corresponding direction. Modes 2 to 33 indicate horizontal prediction, and modes 34 to 66 indicate vertical prediction.

[0036] The mode is defined by intraPredAngle(A), which is the offset of the predictor relative to the (0,0) position in the horizontal / vertical direction, as shown in Table 1. When intraPredAngle(A) is equal to 0, the prediction mode can be strictly horizontal (mode 18) or vertical (mode 50). When the value of intraPredAngle(A) is negative, the prediction mode is in the negative direction, i.e., a mode in the range 19 to 49, and when the value of intraPredAngle(A) is positive, the prediction mode is in the positive direction, i.e., one of the remaining angle modes.

[0037] [Table 1]

[0038] After the second step, some prediction modes may introduce discontinuities along the top and left reference boundaries and therefore include a subsequent post-processing step known as position dependent intra prediction combination (PDPC), which aims to smooth the predicted pixel values ​​near those boundaries.

[0039] Geometric Partitioning in VVC For better alignment of inter prediction boundaries with objects, JVET-P0068 (see Han Gao, et al., "CE4: CE4-1.1, CE4-1.2 and CE4-1.14: Geometric Merge Mode (GEO)", Document JVET-P0068, 16th Meeting: Geneva, CH, 1-11 October 2019) proposes a geometric merge mode with 32 angles and 5 distances in inter prediction of VVC. When the geometric merge mode is used, a CU is divided into two partitions. Each partition in a CU is inter-predicted using its own motion parameters, and only one prediction is allowed per partition. That is, each partition has one motion vector and one reference index. After predicting each of the partitions, the sample values ​​along the partition edge are adjusted using a blending process with adaptive weights.

[0040] The dividing boundary is at an angle φ i and distance offset ρ i The angle φ can be described as i is quantized from 0 to 360 degrees with a step equal to 11.25 degrees. A total of 32 angles are proposed, as shown in Figure 7. The angle φ i and distance ρ i The geometric division of the distance ρ is shown in Fig. 8. i is the maximum possible distance ρ with a fixed step indicating the distance from the center of the block. max The distance ρ i For =0, only the first half of the angles are available since the partition is symmetric in this case. The results of the geometric partitioning using angle 12 and distances 0 to 3 are shown in Figure 9.

[0041] As shown in Figure 10, some examples of non-rectangular partitioning in inter prediction, such as diagonal partitioning (1010) and general geometric partitioning (1020), are very useful for delineating the complex shape of an object from the background or other objects. In VVC, only rectangular (including square) partitioning is applied to intra frames, so objects with very different characteristics can be contained within one intra-coded block. If any block has a change area along a certain direction and a constant change area at the same time, or if any block has two or more change areas along different directions, they usually cannot be described inadequately by either a single corresponding angle mode, or a planar or DC mode.

[0042] For example, when considering a piecewise smooth image model as shown in FIG. 11, where two different smooth regions with different smoothness characteristics are separated by an edge (1110), predicting both regions with a single intra prediction model is not very accurate. For near-edge regions, they can be successively partitioned into smaller square / rectangular blocks and coded separately as smaller blocks. However, these smaller prediction blocks with similar data may result in unnecessary overhead.

[0043] In order to better model such blocks, we propose an intra-geometric partition to be used. In particular, to adapt to the complex characteristics of natural images, we propose a geometric / diagonal partition-based intra prediction. Different embodiments are provided, which may include one or more of the following: 1. Divide an intra predicted CU into two or more subpartitions by geometrically arranged lines (including diagonal partitions). 2. Each geometric partition within a CU is intra predicted using its own intra mode with its available reference samples: one sub-partition uses the intra-prediction mode copied from the parent CU, and another sub-partition uses a different implicitly or explicitly signaled intra-prediction mode. 3. After predicting each geometric partition, the sample values ​​along the partition boundary are adjusted using a blending process with adaptive weights. 4. Geometric partition-based intra prediction may be applied to one angular intra prediction mode, or to only one negative intra prediction mode, or to only one specific intra prediction mode (eg, mode 34). 5. The Rate-Distortion (RD) cost of geometric partition-based intra prediction can be checked after or before the optimal intra prediction mode is selected. 6. Adapt transform selection or other intra-coding tools for geometric partition-based intra-prediction (i.e., intra sub-partitions).

[0044] In the following, several embodiments regarding intra-geometric partitions are described in detail.

[0045] Diagonal Partition-Based Intra Prediction for Negative Mode In this embodiment, after one negative intra prediction mode is selected from these defined modes for a target CU that yields the best RD performance, the target CU may be divided into two triangular partitions using a diagonal division from the top-left position, as shown in Figure 12. Specifically, if a sub-partition flag cu_sbp_flag is signaled for an intra CU and cu_sbp_flag is equal to 1, a diagonal partition is further applied to the intra CU.

[0046] FIG. 13 illustrates a method (1300) of diagonal partition-based intra prediction for an image block in an encoder according to one embodiment. The method 1300 starts at step 1305. At step 1310, a most probable mode (MPM) candidate list is generated. At steps 1320 and 1330, the encoder checks all potential intra prediction modes by generating a prediction block P(n) and calculating an RD cost COST(n) for each potential intra prediction mode n. The best intra prediction mode m (e.g., the one with the smallest RD cost) is used to encode the current block (1340). If a negative direction intra prediction mode is selected from these predefined modes (1350), the diagonal partitions are checked. At step 1360, a sub-partition flag cu_sbp_flag, indicating whether the block is diagonally divided into two sub-partitions, is initialized to 0. In step 1370, the block is diagonally partitioned and the RD cost associated with the partition is calculated. The RD costs with and without partitioning are compared (1380). If the proposed diagonal partition based intra prediction has a smaller RD cost, the diagonal partitioning is applied to the intra block and the sub-partition flag cu_sbp_flag is coded as 1 (1390). The method 1300 ends at step 1399.

[0047] FIG. 14 shows a diagonal partition-based intra prediction block generation process 1400 according to one embodiment. The method 1400 may be used in step 1370 to apply intra diagonal partitioning. When this diagonal partitioning is used, an intra CU is divided (1410) into two triangular child partitions, namely partition 0 and partition 1. Partition 0 is inferred to use the negative intra prediction mode of the parent CU. Another child partition 1 is then intra predicted using another default or signaled intra prediction mode. By allowing two different intra prediction modes for an intra block with two regions with different smoothness characteristics, more accurate prediction may be expected.

[0048] A partition position flag cu_sbp_pos is signaled (1420) to indicate which child partition is partition 0. As shown in Figures 12(a) and 12(b), respectively, when cu_sbp_pos is equal to 0, partition 0 is the region located near the left boundary. In contrast, when cu_sbp_pos is equal to 1, partition 0 is the region located near the top boundary. To further improve coding efficiency and simplify the coding process, the partition position flag cu_sbp_pos may also be implicit and signaling may be skipped under some conditions as described below.

[0049] The intra-prediction mode of partition 0 is copied directly from the current CU (1430). Depending on different design principles, the intra-prediction mode of partition 1 can either be explicitly signaled or implicitly signaled as the default intra-prediction mode (1440).

[0050] Each child partition is intra predicted using its intra prediction mode and its available reference samples, respectively. After predicting each of the triangular partitions, the sample values ​​along the diagonal edges / boundaries are adjusted (1450) using a blending process with adaptive weighting masks or coefficients. Further details of steps 1420, 1440 and 1450 are described below.

[0051] FIG. 15 illustrates a method (1500) for performing diagonal partition-based intra prediction in a decoder according to one embodiment. The method 1500 starts at step 1505. At step 1510, an intra prediction mode m for a CU is decoded. If the intra prediction mode is a negative intra prediction mode (1520), a sub-partition flag cu_sbp_flag is decoded to indicate whether the block is diagonally divided into two sub-partitions (1530). If the intra prediction mode m is not negative or cu_sbp_flag is equal to 0, the CU is intra predicted with its intra mode m (1570). If the CU is diagonally divided (1535), a partition position flag cu_sbp_pos is explicitly or implicitly decoded to indicate which child partition is partition 0 (1540). For partition 1, an additional intra prediction mode cu_sbp_mode is explicitly or implicitly decoded (1550) and used for intra prediction of partition 1 (1565), and for partition 0, it is intra predicted using intra prediction mode m that is directly copied from its parent CU (1560). After obtaining predicted partition 0 and partition 1, they are mixed (1580) to obtain the final predicted CU. The method 1500 ends at step 1599.

[0052] One reason for applying the additional diagonal partition only for negative intra-prediction modes is to ensure that there are reference samples available to predict both triangular partitions. According to a variation of this embodiment, the proposed diagonal intra-partition is enabled only if intra-prediction mode 34 is selected.

[0053] Determining partition 0 and partition 1 using the partition position flag cu_sbp_pos (1420) As explained in Figures 14 and 15, the partition position flag cu_sbp_pos is signaled to indicate which regions of the parent intra CU are intra predicted using the intra prediction mode copied from the parent CU (partition 0). The remaining regions (partition 1) are intra predicted using another default mode or the signaled mode.

[0054] 12, when cu_sbp_pos is equal to 0, partition 0 is the region located near the left boundary. In contrast, when cu_sbp_pos is equal to 1, partition 0 is the region located near the top boundary.

[0055] Instead of signaling the partition position flag cu_sbp_pos, the position of the intra-predicted partition in the inferred mode (partition 0) may be implicit under some conditions to further improve coding efficiency and simplify the coding process.

[0056] In one example, partition 0 may be implicit according to the negative direction intra prediction mode of the parent intra CU as shown in Figure 16. If the intra prediction mode of the parent intra CU belongs to the horizontal negative direction (e.g., modes 19-33 as shown in Figure 6), partition 0 is the region located near the left boundary, otherwise, if it belongs to the vertical negative direction (e.g., modes 34-49 as shown in Figure 6), partition 0 is the region located near the top boundary. One reason for this implicit signaling is that when a diagonal partition is further applied to an intra CU, when the intra prediction mode of this CU belongs to the horizontal direction, it is more likely to perform horizontal intra prediction using the left reference array for the region near the left boundary, and the remaining region with different variation characteristics may be better intra predicted using another default mode or a signaled mode.

[0057] The range of the horizontal-negative direction and the vertical-negative direction defined in this implicit signaling method can be further reduced or expanded. For example, only the modes 19-26 shown in Fig. 6 can be classified into the horizontal-negative direction where the implicit signaling of the P0 / P1 partition is applied, and the modes 42-49 shown in Fig. 6 are included in the vertical-negative direction where the implicit signaling of the P0 / P1 partition is applied.

[0058] Intra prediction mode for partition 1: cu_sbp_mode (1440) As described in Figures 14 and 15, Partition 0, a child partition of the target intra CU, is intra predicted using the intra prediction mode from its parent CU, and Partition 1, a remaining child partition of the target intra CU, is intra predicted using either 1) the default intra prediction mode (i.e., DC / horizontal / vertical mode), or 2) a signaled intra prediction mode among the remaining pre-defined intra prediction modes.

[0059] For simplicity, partition 1 may be automatically intra predicted using DC mode. In this case, cu_sbp_mode is set to 1 (DC mode). The current partition 1 sample value is predicted by calculating the average of reference samples from the left neighbor or / and the top neighbor, and the reference sample in the top-left corner is not used for the prediction when DC mode is applied. This implementation may handle the case where a block has both change regions along a certain direction and constant change regions at the same time.

[0060] If the target intra CU is a square block, partition 1 is a symmetric triangular partition as shown in Figure 17 (the reference samples used for partition 1 are marked in dark grey). The reference samples from both the left neighbor and the top neighbor along the length L are both used to calculate the average according to the following formula:

[0061]

number

[0062] If the target intra CU is a rectangular block, in order to avoid division operations to generate a DC prediction, only the longer sides along the left and top neighbors are used to calculate the average of the asymmetric triangular partition, as shown in FIG. 18.

[0063] If the horizontal side of partition 1 is longer, the intra prediction p(x,y) is derived by averaging reference samples from the upper neighbor along the length L according to:

[0064]

number

[0065] Similarly, if the vertical side of partition 1 is longer, the intra prediction p(x,y) is derived by averaging reference samples from the left neighbor along the length L according to:

[0066]

number

[0067] According to a variation of the asymmetric triangular partition, rather than using DC mode, the sample values ​​of partition 1 may be predicted by using horizontal mode (cu_sbp_mode=18) or vertical mode (cu_sbp_mode=50).

[0068] If the vertical side of partition 1 along the left and top neighbors is longer, the horizontal mode (mode 18) is implicit as the intra prediction mode of partition 1. The intra prediction p(x,y) is derived by copying the reference sample in the horizontal direction, as shown in Figure 19. Similarly, the vertical mode (mode 50) is applied if the horizontal side of partition 1 along the left and top neighbors is longer, and the intra prediction p(x,y) is derived by copying the reference sample in the vertical direction.

[0069] According to another variant, for asymmetric triangular partitions, the sample values ​​of the current partition 1 may be predicted by using one mode selected from DC mode and horizontal / vertical mode. In this case, cu_sbp_mode is signaled in the bitstream with one additional bit.

[0070] According to another variant, in order to predict partition 1 more accurately and flexibly, partition 1 may be intra predicted using a signaled intra prediction mode cu_sbp_mode among the remaining predefined modes based on the optimal RD cost. In this case, if the mode cu_sbp_mode of partition 1 belongs to DC mode or horizontal / vertical mode, the reference sample of the top-left corner may not be used for prediction, and if the mode cu_sbp_mode is one of the other intra modes, the reference sample of the top-left corner may be used.

[0071] To speed up the mode selection process in the encoder, the number of candidates for intra-prediction modes may be limited, or a separate Most Probable Mode (MPM) list may be used for the intra-prediction mode cu_sbp_mode of partition 1. For example, a list with three MPMs is generated by considering the intra-modes of the left neighboring block and the above neighboring block of partition 1. Let the mode of the left block be denoted as Left and the mode of the above block be denoted as Above.

[0072] If both Left and Above modes are available and they differ as shown in FIG. 20, the MPM list is constructed as follows: -If both Left and Above modes are non-angle modes: -MPM list → {DC,V,H} -If one of modes Left and Above is an angular mode and the other is a non-angular mode: -Set mode Max as the greater of the Left and Above modes. -MPM list → {Max,DC,Max-1} -If both Left and Above modes are angle modes: -If partition 1 is a symmetric triangular partition -MPM List → {DC,Left,Above} - If Partition 1 is an asymmetric triangular partition, and the horizontal sides along the left and upper adjacent parts of Partition 1 are longer -MPM List → {Left,H,Above} -If not, -MPM List → {Above,V,Left}

[0073] If only one of the modes Left and Above is available, or if both modes Left and Above are angles and they are equal, partition 1 can simply assume the available mode Left or Above for intra prediction, as shown in FIG. 21.

[0074] A mixing process with adaptive weights (1450). After predicting each of the partitions, the sample values ​​on the partition edges are calculated as the prediction for P0 using the following formula: P0 (x,y) and prediction pred for P1 P1 (x,y) is adjusted using a blending process with an adaptation coefficient W. pred boundary (x,y)=W * pred P0 (x,y)+(1-W) * pred p1 (x,y) Here, the weighting coefficients can be 1 / 2 or 3 / 4, as shown in FIG. 22, or other values.

[0075] Similar to the Triangle Partitioning mode (TPM), in order to further reduce the boundary effect along the two partitions P0 and P1, the proposed diagonal partition-based intra prediction operates using two intra prediction modes m and cu_sbp_mode, and has two predictions pred for a CU as follows: 0 (x,y) and pred 1 (x,y) is mixed with mask W 0 and W 1Using the final prediction block pred final It can generate (x,y). pred final (x,y)=W 0 * pred 0 (x,y)+W 1 * pred 1 (x,y) The proposed intra-diagonal partition mixture mask W 0 and W 1 is derived from the distance between the sample position and the splitting boundary, as shown in Figure 23. In this example, weights {7 / 8, 6 / 8, 5 / 8, 4 / 8, 3 / 8, 2 / 8, 1 / 8} are used in the blending process.

[0076] According to one variant, the blending mask W of the intra-diagonal partition 0 and W 1 , may also be asymmetric around the diagonal edge, as shown in Figure 24. Prediction pred, where the intra prediction mode of a partition is inferred from the intra mode of the block. 0 (x,y) may use larger weights for blending. In this example, weights {3 / 4, 2 / 4, 1 / 4} are used in the blending process.

[0077] According to another variant, the blending may be processed only at the diagonal edges with a weighting factor W using the following formula: pred final (x,y)=W * pred 0 (x,y)+(1-W) * pred 1 (x,y) The weighting factor may be 1 / 2 or 3 / 4, or some other value.

[0078] Geometric partition for negative intra-prediction modes In the above, the CU is divided into two parts by a diagonal line. More generally, we propose to divide the intra-predicted CU into two parts by a geometrically arranged straight line to better align the edges / boundaries of the two regions. The division line may be parallel to the intra-prediction mode or may be selected from some specific partitions, and the division line may start from the top-left position (0,0) or may be accompanied by an offset.

[0079] Similar to diagonal partition-based intra prediction, the proposed geometric partition-based intra prediction may further divide the intra predicted CU into two partitions. Then, each geometric partition in the CU, partition 0 and partition 1, is intra predicted in its own intra mode using its available reference samples, respectively. After predicting each geometric partition, the sample values ​​along the partition boundary are adjusted using a blending process with adaptive weights. The weight coefficients may be derived from the distance between the sample position and the partition boundary.

[0080] Partition Boundary Derivation for Geometric Partition-Based Intra Prediction As mentioned above, a geometric partition may divide a target CU into two parts by a dividing line parallel to a direction associated with the intra prediction mode of this CU.

[0081] As shown in the example of Figure 25(a), if the intra prediction mode is mode 19, the partition boundary (2510) is parallel to the negative horizontal direction. Or, as shown in Figure 25(b), if the intra prediction mode is mode 49, the partition boundary (2520) is parallel to the negative vertical direction. As shown in Figure 25(c), if the intra prediction direction of the target intra CU is mode 34, a diagonal partition (2530) is applied to the square block as described above, and a 45-degree partition parallel to mode 34 is applied to the rectangular block.

[0082] To further increase the partitioning flexibility of the proposed intra-geometric partition, the partitioning boundary can be selected from several predefined partitions as shown in Figure 26. In this example, there are seven predefined partitioning boundaries, each of which represents an angle from 0 to -90 degrees with a step of 11.25 degrees. In this example, the syntax element cu_sbp_boundary is signaled to indicate which partitioning boundary is applied.

[0083] According to another variant, the number of predefined division boundaries may be any value other than 7, and may also be a different value adapted to the intra prediction mode. For example, if the intra prediction mode belongs to the horizontal negative direction (modes 19 to 33 shown in FIG. 6), only half of the division boundaries close to the upper part of FIG. 26 are applied.

[0084] Geometric partition start position cu_sbp_start As mentioned above, the dividing line of the geometric partition of the target CU may start from the top left position (0,0), or the dividing start position may be shifted with an offset to better align with the geometric edges / boundaries of the two child partitions.

[0085] In this case, the syntax element cu_sbp_start is signaled to indicate where the split start position is located. As shown in Figure 27, taking mode 34 as an example, there are three predefined split start positions. When cu_sbp_start=0, the 45 degree split line starts at the top left position p(0,0). When cu_sbp_start is equal to 1, the 45 degree split line starts at the center of the left boundary.

[0086]

number

[0087]

number

[0088]

number

[0089] According to another variant, the 45 degree split of the target CU may start from any position at the left or top boundary whose coordinate information is signaled in the bitstream, as shown in Fig. 28. In this variant, a syntax flag cu_sbp_start_left is signaled to indicate whether the split start position is located at the left boundary or not, and then another syntax element cu_sbp_start_offset is subsequently signaled to indicate the distance between the split start position and the top-left position. If cu_sbp_start_left is equal to 1, the geometric partition starts from any position p(0,y) at the left boundary, and the distance y is signaled in the bitstream as cu_sbp_start_offset. Similarly, if cu_sbp_start_left is equal to 0, the geometric partition starts from any position p(x,0) at the top boundary, and the distance x is signaled as cu_sbp_start_offset. This variation is more flexible for aligning with geometric edges / boundaries, but signaling of cu_sbp_start_offset can be quite costly.

[0090] Determining partition 0 and partition 1 based on area Since the geometric partition can divide the target CU into two asymmetric parts, partition 0 can be implicit according to the areas of these two child partitions of the target intra CU, as shown in Figure 29. The concept of this variant is to automatically set the area with a larger area among these two child partitions as partition 0.

[0091] The reason for this proposed variant is that most of the area of ​​the target intra CU is likely to be predicted with the intra mode of this CU, and only the remaining smaller areas with different transformation characteristics may need to be intra described using another mode, otherwise this target CU would be assigned another intra prediction mode.

[0092] Geometric Partition-Based Intra Prediction for Angular Modes Rather than just checking the geometric partition after a negative direction intra prediction mode is selected as described above, the third embodiment proposes to divide the intra predicted CU into two parts by a geometrically arranged straight line after one angle intra prediction mode is selected and reference neighboring samples of two regions are available.

[0093] As a complement to the geometric partition-based intra prediction after the negative intra prediction mode is selected, it is proposed that the geometric partition-based intra prediction may further divide the intra predicted CU into two partitions from the upper right position with an offset or from the lower left position with an offset after the positive intra prediction mode is selected. Further details are described below.

[0094] Partition Boundaries and Starting Positions for Geometric Partition-Based Forward Intra Prediction As mentioned above, after a negative intra-prediction mode is selected, the geometric partition may divide the target CU into two parts by a division line parallel to the intra-prediction mode of the CU.

[0095] As a complement to the forward intra-prediction mode, the geometric partition-based intra-prediction may further divide an intra-predicted CU into two partitions by a division line parallel to the intra-prediction mode of this CU. The division start position may be either from a top-right position with an offset or from a bottom-left position with an offset.

[0096] As shown in the example of Figure 30, the division line may be parallel to the forward intra-prediction mode of the target CU. If the intra-prediction mode is mode 8, which belongs to the horizontal forward direction, the division line is parallel to the horizontal forward direction. Or, if the intra-prediction mode is mode 60, which is one of the vertical forward modes, the division line is parallel to the vertical forward direction. If the intra-prediction direction of the target intra-CU is mode 2 or mode 66, a 135-degree division is applied.

[0097] The partition line of the forward intra prediction mode may also be selected from several predefined partitions, as shown in the example of Figure 31, to further increase the partition flexibility. There are four predefined partition boundaries for the horizontal / vertical forward modes, respectively. The four predefined partition boundaries in Figure 31(a) are used for the horizontal forward mode, each of which represents an angle from 0 to 45 degrees with a step of 11.25 degrees. Another four predefined partition boundaries in Figure 31(b) are used for the vertical forward mode, each of which represents an angle from -45 to -90 degrees with a step of 11.25 degrees. In this variant, the syntax element cu_sbp_boundary is signaled to indicate which partition boundary is applied.

[0098] Geometric or diagonal partition based intra prediction check for angular intra prediction mode before optimal intra prediction mode is selected In the above, all the proposed embodiments are applied only after the angular intra prediction mode is selected through the recursive RDO search. One advantage is that it limits the search complexity for intra mode selection.

[0099] Instead of checking whether to split a CU into two parts only after an angular intra prediction mode is selected, the fourth embodiment proposes that geometric / diagonal intra partitions can be checked for angular intra prediction mode candidates during recursive RDO search before the best intra prediction mode is selected. That is, the RD costs of some or all angular intra prediction modes, using or not using geometric / diagonal intra partitions, can both be calculated, and the remaining intra prediction modes only calculate RD costs without splitting. The final intra prediction mode can be selected from all these possible situations and bring about the best RD performance.

[0100] For an intra predicted CU with an angular intra prediction mode that belongs to the mode required for checking for partitioning, the sub-partition flag cu_sbp_flag is signaled. The proposed geometric / diagonal intra-partition is further applied to this intra CU if cu_sbp_flag is equal to 1.

[0101] FIG. 32 illustrates a method (3200) for performing intra-prediction mode search in an encoder according to one embodiment. The method 3200 starts at step 3205. At step 3210, a most probable mode (MPM) candidate list is generated. At step 3220, the encoder checks a potential intra-prediction mode m by generating a prediction block P(m) and calculating an RD cost COST(m). For an intra-mode that is one of the candidates for checking the geometric intra-partition (3230), a sub-partition flag cu_sbp_flag indicating whether the block is diagonally divided into two sub-partitions is initialized to 0 (3240), and the block is divided into two sub-partitions and an RD cost COST(m_sbp) is calculated (3250). If the geometric partition based intra prediction has the smaller RD cost (3260), the geometric partition is applied to the intra block, the sub-partition flag cu_sbp_flag is coded as 1, and the optimal cost is updated to COST(m_sbp) (3270). In step 3280, the encoder checks whether all modes have been checked. If not, control returns to step 3220. Otherwise, the encoder encodes the current block using the optimal intra prediction mode (3290). The method 3200 ends at step 3299.

[0102] Compared with the method 1300, this embodiment (3200) optimizes the best intra-prediction mode search while increasing the search complexity and the signaling cost of cu_sbp_flag. To balance the complexity and coding efficiency, several search speed-up schemes are described in the following variants.

[0103] According to a variation of this embodiment, it may be possible that the proposed geometric / diagonal intra-partition is checked only when one particular intra-prediction mode (eg, mode 34) is checked.

[0104] According to another variation of this embodiment, it may be possible to allow the proposed geometric / diagonal intra-partition to be checked only when one negative intra-prediction mode is checked.

[0105] According to another variation of this embodiment, a geometric / diagonal intrapartition may be allowed to be checked only when one of its left or top neighboring blocks applies geometric / diagonal intrapartition.

[0106] According to another variation of this embodiment, a geometric / diagonal intrapartition may be allowed to be checked only if both its left and top neighboring blocks apply geometric / diagonal intrapartition.

[0107] Transformation Selection for Proposed Intra-Geometric / Diagonal Partitioning After the above process has obtained the final prediction signal for the entire CU, the transform and quantization process is applied to the entire CU, similar to other intra prediction modes. The transform selection may be adapted to the intra geometric partition in this embodiment.

[0108] In VVC, in addition to DCT2, a Multiple Transform Selection (MTS) scheme is used for residual coding in both intra-coded and inter-coded blocks. The MTS scheme uses multiple transforms selected from DCT8 / DST7. The transform and signaling mapping table is shown in Table 2. Although the introduction of MTS improves the efficiency of transforms in VVC, the exhaustive RDO search for optimal transform candidates brings a large computational burden to the VVC encoder.

[0109] [Table 2]

[0110] In VVC, a CU level flag is signaled to indicate whether MTS is applied or not. In the fifth embodiment, we propose that the MTS CU level flag is not signaled but inferred when the proposed intra-geometric / diagonal partition is applied.

[0111] If the difference between the intra prediction modes of the two split partitions (partition 0 and partition 1) is smaller than a predefined threshold, or partition 1 is intra predicted using DC mode, the MTS CU level flag is inferred as 0, and DCT2 is applied in both directions. For the remaining cases, where the content usually has a very complex texture, MTS is likely to be applied because only one single transform (DCT2) is not efficient to model different statistical variations. The MTS CU level flag is inferred as 1, and then two flags are directly signaled to indicate the transform type for the horizontal and vertical directions, respectively, as shown in Table 3.

[0112] [Table 3]

[0113] According to a variation of this embodiment, the transform type for an intra CU using intra geometric partitioning may be implicitly derived from the intra prediction mode of the target intra CU. By using different coding parameters, the same logic may actually be implemented differently.

[0114] According to a variation of the above embodiment, the range of directional intra-prediction modes in which the proposed geometric / diagonal intra-partition may be enabled may be further narrowed. For example, the proposed geometric / diagonal intra-partition may be enabled only after one intra-prediction mode is selected from modes 26 to 42.

[0115] According to another variation of the above embodiment, the target CU may be divided into more than two parts.

[0116] According to another variant of the aforementioned embodiment, when the proposed geometric / diagonal intra-partition is applied to the current CU, no intra-sub-partitions (ISPs) are allowed.

[0117] Various methods are described herein, each of which includes one or more steps or actions for achieving the described method. Unless a specific order of steps or actions is required for proper operation of the method, the order and / or use of specific steps and / or actions may be modified or combined. In addition, terms such as "first", "second", etc. may be used in various embodiments to modify elements, components, steps, operations, etc., e.g., "first decoding" and "second decoding". The use of such terms does not imply any ordering on the modified operations, unless specifically required. Thus, in this example, the first decoding need not be performed before the second decoding, but may occur, for example, before, during, or during an overlapping time with the second decoding.

[0118] Various methods and other aspects described in the present application may be used to modify modules of the video encoder 200 and decoder 300, such as intra prediction modules (260, 360), as shown in Figures 2 and 3. Furthermore, the aspects are not limited to VVC or HEVC, but may be applied, for example, to other standards and recommendations, and extensions of any such standards and recommendations. Unless otherwise specified or technically precluded, the aspects described in the present application may be used individually or in combination.

[0119] In this application, various numerical values ​​are used. The specific values ​​are for illustrative purposes and the described aspects are not limited to these specific values.

[0120] Various implementations include decoding. As used herein, "decoding" may encompass all or a portion of the processes performed on a received encoded sequence to generate a final output suitable for, for example, a display. In various embodiments, such processes include one or more of the processes typically performed by a decoder, such as, for example, entropy decoding, inverse quantization, inverse transform, and differential decoding. Whether the phrase "encoding process" is intended to refer specifically to a subset of operations or to the broader encoding process as a whole will be clear based on the context of the specific description and will be well understood by one of ordinary skill in the art.

[0121] Various implementations involve encoding. Similar to the discussion above regarding "decoding," "encoding" as used in this application may encompass all or a portion of the processes performed on an input video sequence to generate, for example, an encoded bitstream.

[0122] It should be noted that the syntax elements used herein are descriptive terms, and therefore do not exclude the use of other syntax element names.

[0123] The implementations and aspects described herein may be implemented in, for example, a method or process, an apparatus, a software program, a data stream, or a signal. Even if only discussed in the context of a single type of implementation (e.g., discussed only as a method), the implementation of the discussed features may also be implemented in other forms (e.g., an apparatus or a program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The method may be implemented in an apparatus such as 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, for example, communication devices such as computers, mobile phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end users.

[0124] Reference to "one embodiment" or "an embodiment" or "one implementation" or "an implementation," as well as other variations thereof, means that a particular feature, structure, characteristic, etc. described in connection with that embodiment is included in at least one embodiment. Thus, the appearances of the phrases "in one embodiment" or "an embodiment" or "in one implementation," as well as other variations thereof, appearing in various places throughout this application are not necessarily all referring to the same embodiment.

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

[0126] Additionally, the application may refer to "accessing" various information. Accessing information may include, for example, one or more of receiving information, retrieving information (e.g., from a memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.

[0127] In addition, the application may refer to "receiving" various information. Receiving, like "accessing," is intended to be a broad term. Receiving information may include, for example, one or more of accessing information or retrieving information (e.g., from a memory). Furthermore, "receiving" typically involves some form of activity, such as storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.

[0128] For example, in the case of "A / B," "A and / or B," and "at least one of A and B," it should be understood that use of any of the following " / ," "and / or," and "at least one of" is intended to encompass selection of only the first listed alternative (A), or selection of only the second listed alternative (B), or selection of both alternatives (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 language is intended to encompass the selection of only the first listed alternative (A), or the selection of only the second listed alternative (B), or the selection of only the third listed alternative (C), or the selection of only the first and second listed alternatives (A and B), or the selection of only the first and third listed alternatives (A and C), or the selection of only the second and third listed alternatives (B and C), or the selection of all three alternatives (A and B and C). This may be expanded as many times as the number of items listed, as would be apparent to one of ordinary skill in the art and related arts.

[0129] Also, as used herein, the term "signaling" means to indicate something, especially to a corresponding decoder. For example, in a particular embodiment, the encoder signals a quantization matrix for dequantization. Thus, in an embodiment, the same parameters are used at both the encoder and decoder sides. Thus, for example, the encoder can transmit a particular parameter to the decoder so that the decoder can use the same particular parameter (explicit signaling). In contrast, if the decoder already has the particular parameter as well as other parameters, it can use signaling without transmission (implicit signaling) to simply allow the decoder to know and select the particular parameter. By avoiding the transmission of any actual function, bit savings are realized in various embodiments. It will be understood that signaling can be achieved in various ways. For example, one or more syntax elements, flags, etc. are used in various embodiments to signal information to a corresponding decoder. The above relates to the verb form of the word "signal", which may also be used as a noun in this specification.

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

Claims

1. 1. A method for video decoding, comprising: Dividing a block of a picture into at least two partitions by a straight line, the straight line being different from a horizontal line or a vertical line; performing intra prediction using a first intra prediction mode to obtain a prediction sample for a first partition of the at least two partitions; performing intra prediction using a second intra prediction mode to obtain a prediction sample of a second partition of the at least two partitions; adjusting the values ​​of the predicted samples of the first partition and the second partition along the line using a blending process with adaptive weights; and decoding the block based on the predicted samples of the first partition and the second partition.

2. and further comprising: decoding the first intra prediction mode of the first partition, wherein the dividing, executing, and adjusting are applied only when the first intra prediction mode is an angular prediction mode. The method of claim 1.

3. The method of claim 1 , wherein the adaptive weights are asymmetric about the line.

4. The method of claim 1 , wherein the straight line is parallel to a direction associated with an intra-prediction mode of the block.

5. selecting one or more transforms for the block based on at least one of the first intra-prediction mode and the second intra-prediction mode; The method of claim 1 further comprising:

6. 1. A method for video encoding, comprising: Dividing a block of a picture into at least two partitions by a straight line, the straight line being different from a horizontal line or a vertical line; performing intra prediction using a first intra prediction mode to obtain a prediction sample for a first partition of the at least two partitions; performing intra prediction using a second intra prediction mode to obtain a prediction sample of a second partition of the at least two partitions; adjusting the values ​​of the predicted samples of the first partition and the second partition along the line using a blending process with adaptive weights; and encoding the block based on the predicted samples of the first partition and the second partition.

7. and encoding the first intra prediction mode of the first partition, wherein the dividing, executing, and adjusting are applied only when the first intra prediction mode is an angular prediction mode. The method according to claim 6.

8. The method of claim 6 , wherein the adaptive weights are asymmetric about the line.

9. The method of claim 6 , wherein the straight line is parallel to a direction associated with an intra-prediction mode of the block.

10. selecting one or more transforms for the block based on at least one of the first intra-prediction mode and the second intra-prediction mode; The method of claim 6 further comprising:

11. 1. An apparatus for video decoding, comprising one or more processors and at least one memory, the one or more processors comprising: Dividing a block of a picture into at least two partitions by a straight line, the straight line being different from a horizontal line or a vertical line; performing intra prediction using a first intra prediction mode to obtain a prediction sample for a first partition of the at least two partitions; performing intra prediction using a second intra prediction mode to obtain a prediction sample of a second partition of the at least two partitions; adjusting the values ​​of the predicted samples of the first partition and the second partition along the line using a blending process with adaptive weights; and decoding the block based on the predicted samples of the first partition and the second partition.

12. the one or more processors:

12. The apparatus of claim 11, further configured to decode the first intra-prediction mode of the first partition, wherein the one or more processors are configured to partition, execute, and adjust only when the first intra-prediction mode is an angular prediction mode.

13. The apparatus of claim 11 , wherein the adaptive weights are asymmetric about the line.

14. The apparatus of claim 11 , wherein the straight line is parallel to a direction associated with an intra-prediction mode of the block.

15. the one or more processors: The apparatus of claim 11 , further configured to select one or more transforms for the block based on at least one of the first intra-prediction mode and the second intra-prediction mode.

16. 1. An apparatus for video encoding, comprising one or more processors and at least one memory, the one or more processors comprising: Dividing a block of a picture into at least two partitions by a straight line, the straight line being different from a horizontal line or a vertical line; performing intra prediction using a first intra prediction mode to obtain a prediction sample for a first partition of the at least two partitions; performing intra prediction using a second intra prediction mode to obtain a prediction sample of a second partition of the at least two partitions; adjusting the values ​​of the predicted samples of the first partition and the second partition along the line using a blending process with adaptive weights; encoding the block based on the predicted samples of the first partition and the second partition.

17. the one or more processors:

17. The apparatus of claim 16, further configured to encode the first intra-prediction mode for the first partition, wherein the one or more processors are configured to partition, execute, and adjust only when the first intra-prediction mode is an angular prediction mode.

18. The apparatus of claim 16 , wherein the adaptive weights are asymmetric about the line.

19. The apparatus of claim 16 , wherein the straight line is parallel to a direction associated with an intra-prediction mode of the block.

20. the one or more processors:

20. The apparatus of claim 16, further configured to select one or more transforms for the block based on at least one of the first intra-prediction mode and the second intra-prediction mode.