Intraprediction with geometric partitions
By dividing video blocks into partitions and applying adaptive intra-prediction modes with weight adjustments, the method addresses the inefficiencies in handling complex structures, enhancing compression efficiency and prediction accuracy in video encoding and decoding.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- INTERDIGITALCE PATENT HLDG SAS
- Filing Date
- 2021-11-10
- Publication Date
- 2026-07-07
AI Technical Summary
Existing video encoding and decoding methods struggle to efficiently handle blocks with complex structures containing regions of different orientations, as they often rely on single angular or non-angular modes that fail to accurately predict such variations, leading to inefficiencies in compression and reconstruction.
The method involves dividing a block into at least two partitions using a straight line and applying different intra-prediction modes to each partition, with adaptive weight adjustments along the partition boundaries to improve prediction accuracy.
This approach enhances compression efficiency by better modeling complex image features, reducing redundancy and improving prediction accuracy, thereby optimizing video encoding and decoding processes.
Smart Images

Figure 0007886324000010 
Figure 0007886324000011 
Figure 0007886324000012
Abstract
Description
[Technical Field]
[0001] This embodiment generally relates to a method and apparatus for intra-prediction involving geometric partitions in video encoding or decoding. [Background technology]
[0002] To achieve high compression efficiency, image and video coding schemes typically employ prediction and transformation to leverage spatial and temporal redundancy within video content. Generally, intra-picture or inter-picture correlation is used to utilize intra-picture or inter-picture correlation, and the difference between the original and predicted blocks, often called the prediction error or prediction residual, is then transformed, quantized, and entropicoded. To reconstruct the video, the compressed data is decoded by the reverse process corresponding to entropicoding, quantization, transformation, and prediction. [Overview of the project]
[0003] According to one embodiment, a method for encoding or decoding video is provided, which includes dividing a block of picture into at least two partitions by a straight line; performing intra-prediction on the first partition using a first intra-prediction mode to obtain predictive samples of the first partition of the at least two partitions; performing intra-prediction on the second partition using a second intra-prediction mode to obtain predictive samples of the second partition of the at least two partitions; and adjusting the predictive sample values along the straight line using a mixed process with adaptive weights.
[0004] According to another embodiment, a device for video encoding or decoding is presented, comprising one or more processors, which are configured to divide a block of a picture into at least two partitions by a straight line, to perform intra-prediction on the first partition using a first intra-prediction mode to obtain predictive samples of the first partition of the at least two partitions, to perform intra-prediction on the second partition using a second intra-prediction mode to obtain predictive samples of the second partition of the at least two partitions, and to adjust the predictive sample values along the straight line using a mixed process with adaptive weights.
[0005] In another embodiment, a video encoding or decoding apparatus is presented, comprising means for dividing a block of picture into at least two partitions by a straight line; means for performing an intra-prediction on the first partition using a first intra-prediction mode to obtain a predictive sample of the first partition of the at least two partitions; means for performing an intra-prediction on the second partition using a second intra-prediction mode to obtain a predictive sample of the second partition of the at least two partitions; and means for adjusting the predictive sample values along the straight line using a mixed process with adaptive weights.
[0006] The present invention provides a computer program that, when executed by one or more embodiments and by one or more processors, includes instructions causing one or more processors to perform an encoding or decoding method according to any of the embodiments described above. One or more of these embodiments also provide a computer-readable storage medium storing 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 storing a bitstream generated by the methods described above. One or more embodiments also provide a method and apparatus for transmitting or receiving a bitstream generated according to the methods described above. [Brief explanation of the drawing]
[0008] [Figure 1] A block diagram of a system in which an embodiment of this model may be implemented is shown. [Figure 2] A block diagram of one embodiment of a video encoder is shown. [Figure 3] A block diagram of one embodiment of a video decoder is shown. [Figure 4] This document illustrates the concepts of a Coding Tree Unit (CTU) and a Coding Unit (CU) for representing a compressed VVC picture. [Figure 5] This shows a reference sample for intra-prediction in VVC. [Figure 6] This shows the intra-prediction direction in VVC for a square target block. [Figure 7] This shows 32 angles in geometric modes for interpretation in VVC. [Figure 8] This shows a geometric partitioning description. [Figure 9] This shows a geometric partition with an angle of 12 and a distance of 0-3. [Figure 10] This shows an example of non-rectangular partitioning for a portion of a picture. [Figure 11] An example of a piecewise smoothed image model is shown. [Figure 12] This demonstrates intra-prediction based on diagonal partitions. [Figure 13] This document describes a method for diagonal partition-based intra prediction in an encoder according to one embodiment. [Figure 14]Shows the generation process of a diagonal partition-based intra prediction block according to an embodiment. [Figure 15] Shows the proposed diagonal partition-based intra prediction process in a decoder according to an embodiment. [Figure 16] Shows how to determine partition 0 according to the negative-direction intra prediction mode of a parent intra CU according to an embodiment. [Figure 17] Shows an example where partition 1 is a symmetric triangular partition. [Figure 18] Shows an example where partition 1 is an asymmetric triangular partition. [Figure 19] Shows an example where cu_sbp_mode is implicit as a horizontal / vertical mode when partition 1 is an asymmetric triangular partition. [Figure 20] Shows 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] Shows an example of a mixed mask for an intra diagonal partition according to an embodiment. [Figure 23] Shows another example of a mixed mask for an intra diagonal partition according to an embodiment. [Figure 24] Shows another example of a mixing coefficient for an intra diagonal partition according to an embodiment. [Figure 25] Shows an example where a split boundary is parallel to the intra prediction mode of an intra geometric partition according to an embodiment. [Figure 26] Shows an example where the split boundary of an intra geometric partition is indicated by cu_sbp_boundary according to an embodiment. [Figure 27]One embodiment shows three predefined partition start positions for geometric partition-based intra-prediction. [Figure 28] An arbitrary partition start position for geometric partition-based intra-prediction according to one embodiment is shown. [Figure 29] An example is shown in one embodiment where partition 0 is determined according to the area of these two child partitions. [Figure 30] An example of a geometric partition for a positive intra-prediction mode according to one embodiment is shown. [Figure 31] An example is shown in which the division boundary for the positive intra-prediction mode is indicated by cu_sbp_boundary according to one embodiment. [Figure 32] This document describes an intra-predictive mode search process in an encoder according to one embodiment. [Modes for carrying out the invention]
[0009] Figure 1 shows a block diagram of an example of a system in which various embodiments and forms may be implemented. System 100 may be embodied as a device comprising various components described below and configured to perform one or more of the embodiments described herein. Examples of such a device include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. The elements of System 100 may be embodied individually or in combination as a single integrated circuit, a plurality of ICs, and / or individual components. For example, in at least one embodiment, the processing elements and encoder / decoder elements of System 100 are distributed across a plurality of ICs and / or individual components. In various embodiments, System 100 is communicably 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 embodiments described in this application.
[0010] System 100 includes, for example, at least one processor 110 configured to execute internally loaded instructions to implement various embodiments described in this application. The processor 110 may include embedded memory, input / output interfaces, and various other circuits as known in the art. System 100 includes at least one memory 120 (e.g., a volatile memory device and / or a non-volatile memory device). System 100 includes a storage device 140, which may include, but is not limited to, EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash memory, magnetic disk drives, and / or optical disk drives, as well as non-volatile and / or volatile memory. The storage device 140 may, in non-limiting examples, include an internal storage device, a mounted storage device, and / or a network-accessible storage device.
[0011] System 100 includes, for example, an encoder / decoder module 130 configured to process data and provide encoded or decoded video, the encoder / decoder module 130 of which may include its own processor and memory. The encoder / decoder module 130 represents a module that may be included in the device to perform encoding and / or decoding functions. As is known, the device may include one or both of the encoding and decoding modules. In addition, the encoder / decoder module 130 may be implemented as a separate element of System 100, or it may be incorporated into the processor 110 as a combination of hardware and software, as is known to those skilled in the art.
[0012] Program code loaded onto the processor 110 or encoder / decoder 130 to perform various embodiments described in this application may be stored in the storage device 140 and subsequently loaded onto the memory 120 for execution by the processor 110. According to various embodiments, one or more of the processor 110, memory 120, storage device 140, and encoder / decoder module 130 may store one or more of various items during the execution of the processes described in this application. Such stored items may include, but are not limited to, input video, decoded video, or portions of decoded video, bitstreams, matrices, variables, and intermediate or final results from the processing of equations, formulas, operations, and operational logic.
[0013] In some embodiments, internal memory of the processor 110 and / or encoder / decoder module 130 is used to store instructions and to provide working memory for processing required during encoding or decoding. However, in other embodiments, external memory of the processing device (for example, 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 memory 120 and / or storage device 140, for example, dynamic volatile memory and / or non-volatile flash memory. In some embodiments, external non-volatile flash memory is used to store the television's operating system. In at least one embodiment, 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] Inputs to the elements of system 100 can be provided through various input devices, as shown in block 105. Such input devices include, but are not limited to, (i) an RF unit for receiving RF signals wirelessly transmitted by a broadcasting station, (ii) a composite input terminal, (iii) a USB input terminal, and / or (iv) an HDMI input terminal.
[0015] In various embodiments, the input device of block 105 has associated input processing elements as known in the Art. For example, the RF portion 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 in order to select a signal frequency band that may be referred to as a channel in a particular embodiment, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) multiplexing to select a desired stream of data packets. The RF portion of various embodiments includes one or more elements that perform these functions, e.g., frequency selectors, signal selectors, band limiters, channel selectors, filters, downconverters, demodulators, error correctors, and demultiplexers. The RF portion may include a tuner that performs these various functions, e.g., down-converting a received signal to a lower frequency (e.g., an intermediate frequency or adjacent baseband frequency) or to the baseband. In one embodiment of the set-top box, the RF section and its associated input processing elements perform frequency selection by receiving, filtering, down-converting, and again filtering the RF signal transmitted over a wired (e.g., cable) medium to a desired frequency band. Various embodiments may involve rearranging the order of the elements described above (and others), removing some of these elements, and / or adding other elements that perform similar or different functions. Adding elements may include inserting elements between existing elements, for example, an amplifier and an analog-to-digital converter. In various embodiments, the RF section includes an antenna.
[0016] In addition, USB and / or HDMI terminals may include their respective interface processors for connecting System 100 to other electronic devices across the entire USB and / or HDMI connection. It should be understood that various forms of input processing, such as Reed-Solomon error correction, may be implemented, for example, within a separate input processing IC or within Processor 110, as needed. Similarly, forms of USB or HDMI interface processing may be implemented, for example, within a separate interface IC or within Processor 110, as needed. The demodulated, error-corrected, and demultiplexed stream is provided to various processing elements, for example, Processor 110 and an encoder / decoder 130 that operates in conjunction with memory and storage elements to process the data stream as needed for presentation on an output device.
[0017] Various elements of system 100 may be provided within an integrated housing, where the various elements are interconnected using internal buses known in the art, such as a suitable connection configuration 115, including an I2C bus, wiring, and a printed circuit board, and can transmit data between them.
[0018] System 100 includes a communication interface 150 that enables communication with other devices via a communication channel 190. The communication interface 150 may include, but is not limited to, transceivers configured to transmit and receive data via the communication channel 190. The communication interface 150 may also include, but is not limited to, a modem or network card, and the communication channel 190 may be implemented, for example, in a wired and / or wireless medium.
[0019] In various embodiments, the data is streamed to system 100 using a Wi-Fi network such as IEEE 802.11. In these embodiments, the Wi-Fi signal is received on a communication channel 190 and a communication interface 150 adapted for Wi-Fi communication. In these embodiments, the communication channel 190 is typically connected to an access point or router that provides access to an external network, including the Internet, to enable streaming applications and other over-the-top communications. In other embodiments, a set-top box that distributes data via an HDMI connection on input block 105 is used to provide streaming data to system 100. In yet another embodiment, an RF connection on input block 105 is used to provide streaming data to system 100.
[0020] System 100 can provide output signals to various output devices, including a display 165, a speaker 175, and other peripheral devices 185. In various embodiments, the other peripheral devices 185 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 the display 165, speaker 175, or other peripheral devices 185 using signaling such as AV.Link, CEC, or other communication protocols that enable inter-device control with or without user intervention. The output devices may be communicably coupled to System 100 via dedicated connections through their respective interfaces 160, 170, and 180. Alternatively, the output devices may be connected to System 100 via a communication interface 150 and a communication channel 190. The display 165 and speaker 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] The display 165 and speaker 175 can, alternatively, be isolated 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 where the display 165 and speaker 175 are external components, the output signals may be provided via dedicated output connections, including, for example, an HDMI port, a USB port, or a COMP output.
[0022] Figure 2 shows an example of a video encoder 200, such as a VVC (Versatile Video Coding) encoder. Figure 2 may also show an encoder that is an improvement over the VVC standard, or an encoder that employs similar technology 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. Typically, though not always, the term “reconstructed” is used on the encoder side, while the term “decoded” is used on the decoder side.
[0024] Before encoding, the video sequence may undergo pre-encoding processing (201), such as applying a color conversion to the input color picture (e.g., converting from RGB4:4:4 to YCbCr4:2:0), or performing a remapping of input picture components to obtain a more compression-resilient signal distribution (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 encoder 200, the picture is encoded by encoder elements as described below. The picture to be encoded is divided into units, for example, CUs (202), and processed. Each unit is encoded using either intra-mode or inter-mode, for example. When a unit is encoded in intra-mode, it performs intra-prediction (260). In inter-mode, motion estimation (275) and motion compensation (270) are performed. The encoder determines whether to use intra-mode or inter-mode to encode a unit (205), and indicates the intra / inter decision, for example, by a prediction mode flag. The prediction residual is calculated, for example, by subtracting the predicted blocks from the original image blocks (210).
[0026] The predicted residual is then transformed (225) and quantized (230). The quantized transformation coefficients, as well as the motion vector and other syntax elements, are entropicoded (245) to output a bitstream. The encoder can skip the transformation and apply quantization directly to the untransformed residual signal. The encoder can bypass both the transformation and quantization, i.e., the residual is coded directly without applying either the transformation or quantization process.
[0027] The encoder decodes the encoded blocks to provide a reference for further prediction. The quantized transformation coefficients are inversely quantized (240) and inversely transformed (250) to decode the prediction residuals. The decoded prediction residuals and the predicted blocks are combined (255) to reconstruct the image blocks. An in-loop filter (265) is applied to the reconstructed picture to perform, for example, non-blocking / sample adaptive offset (SAO) filtering to reduce encoding 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 the decoder elements, as described below. The video decoder 300 generally performs a decoding pass that is the reverse of the encoding pass, as shown in Figure 2. The encoder 200 also generally performs video decoding as part of encoding the video data.
[0029] In particular, the input to the decoder includes a video bitstream, which may be generated by the video encoder 200. The bitstream is first entropy-decoded to obtain transformation coefficients, motion vectors, and other coded information (330). Picture segmentation information indicates how the picture is segmented. The decoder can therefore segment the picture according to the decoded picture segmentation information (335). The transformation coefficients are inversely quantized (340) and inversely transformed (350) to decode the prediction residuals. The image blocks are reconstructed by combining the decoded prediction residuals and the predicted blocks (355). Predicted blocks can be obtained from intra-prediction (360) or motion-compensated prediction (i.e., inter-prediction) (375) (370). 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 undergo further post-decoded processing (385), such as inverse color transformation (e.g., conversion from YCbCr4:2:0 to RGB4:4:4), or reverse remapping, which performs the reverse of the remapping process performed in pre-encoding processing (201). The post-decoded processing may use metadata derived in pre-encoding processing and signaled in the bitstream.
[0031] As described above, in VVC video compression, a picture is divided into so-called coding tree units (CTUs), and each CTU is represented by one or more coding units (CUs) in the compression region, as shown in Figure 4. Each CU is then given several intra or interprediction parameters (prediction information).
[0032] In intra-prediction, the CU is spatially predicted from causally adjacent CUs, i.e., the decoded CUs above and to the left of the current CU. For this purpose, the 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 for the target block and selects the prediction that yields 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 are intended to model the directional structure of objects within 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] Angle prediction mode can describe image regions containing object structures with different orientations. Planar mode and DC mode describe constant and gradually changing regions without a specific orientation. However, within a frame, there may be blocks containing objects and parts of the background, or parts of the same or multiple objects with different orientations. Such blocks cannot usually be adequately described by a single angle mode or non-angle mode (i.e., planar mode and DC mode). Below, we briefly present intra-prediction and geometric partitions in VVC. For ease of reference, the terms "CU" and "block" are used interchangeably throughout this text.
[0034] Intraprediction 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 the predicted sample. The reference sample generation process is shown in Figure 5. The reference pixel value at coordinate (x,y) is indicated by R(x,y) in the figure. For a CU of size WxH, where W and H represent width and height, a row of 2W decoded samples is formed at the top, from the previously reconstructed upper and upper right pixels up to the current CU. Similarly, a column of 2H samples on the left is formed from the reconstructed left and lower left pixels. The corner pixels at the upper left position are also used to fill the gap between the upper row reference and the left column reference.
[0035] The next step, intra-sample prediction, consists of predicting the pixels of the target CU based on a reference sample. As mentioned earlier, VVC supports various prediction modes to efficiently predict different types of content. Planar prediction mode and DC prediction mode are used to predict smooth and gradually changing regions, while angular prediction mode is 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 Figure 6. The numbers indicate the prediction mode index associated with the corresponding direction. Modes 2 to 33 represent horizontal prediction, and modes 34 to 66 represent vertical prediction.
[0036] The mode is defined by intraPredAngle(A), which is the offset of the predictor to the horizontal / vertical (0,0) position, as shown in Table 1. When intraPredAngle(A) is equal to 0, the prediction mode can be strictly the horizontal mode (mode 18) or the vertical mode (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 angular modes.
[0037] [Table 1]
[0038] After the second step, some prediction modes may introduce discontinuities along the upper and left reference boundaries; therefore, these prediction modes include a subsequent post-processing 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 inter-prediction boundaries and object matching, JVET-P0068 (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 for inter-prediction of VVCs. When the geometric merge mode is used, the CU is divided into two partitions. Each partition within the CU is mutually predicted using its own motion parameters, and only one prediction per partition is allowed. That is, each partition has one motion vector and one reference index. After predicting each of the partitions, the sample values along the dividing edges are adjusted using a blending process with adaptive weights.
[0040] The dividing boundary is at an angle φ i and distance offset ρ i It can be described by the angle φ. i The angle φ is quantized from 0 to 360 degrees in steps equal to 11.25 degrees. A total of 32 angles are proposed, as shown in Figure 7. i and distance ρ i The geometric partitioning of the distance ρ is shown in Figure 8. i This is the maximum possible distance ρ, which is the distance from the center of the block using a fixed step. max It is quantized from the distance ρ. i For =0, since the partition is symmetrical in this case, only the first half of the angle is available. The result of geometric partitioning using angle 12 and distance 0-3 is shown in Figure 9.
[0041] As shown in Figure 10, several examples of non-rectangular partitioning in interpretation, such as diagonal partitioning (1010) and general geometric partitioning (1020), are very useful for outlining the complex shapes of objects from the background or other objects. In VVC, only rectangular (including square) partitioning is applied to intraframes, so objects with very different characteristics can be contained within a single intra-encoded block. If any block has both a region of change along a particular direction and a constant region of change, or if any block has two or more regions of change along different directions, they usually cannot be adequately described by a single corresponding angular mode, or by either a planar or DC mode.
[0042] For example, consider a piecewise smoothed image model, as shown in Figure 11, where two different smoothed regions with different smoothing properties are separated by an edge (1110). Predicting both regions with a single intra-predictive model is not very accurate. In the near-edge regions, they can be sequentially partitioned into smaller square / rectangular blocks and coded separately as smaller blocks. However, these smaller predictive blocks with similar data can introduce unnecessary overhead.
[0043] To better model such blocks, the inventors propose intra-geometric partitions to be used. In particular, to adapt to the complex features of natural images, they propose geometric / diagonal partition-based intra-prediction. Different embodiments are provided, which may include one or more of the following: 1. Divide the intra-predicted CU into two or more subpartitions using geometrically arranged lines (including diagonal partitioning). 2. Each geometric partition within a CU is intra-predicted using its own intra-mode along with its available reference samples. One subpartition uses an intra-prediction mode copied from its parent CU, while another subpartition uses a different implicitly or explicitly signaled intra-prediction mode. 3. After predicting each geometric partition, the sample values along the partition boundaries 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 direction intra-prediction mode, or to only one specific intra-prediction mode (e.g., 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 (i.e., intra subpartitions) for geometric partition-based intra prediction.
[0044] Several embodiments of intra-geometric partitions are described in detail below.
[0045] Diagonal partition-based intra-prediction for negative direction 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, this target CU may be divided into two triangular partitions using a diagonal partition from the upper left position, as shown in Figure 12. Specifically, a subpartition flag cu_sbp_flag is signaled to the intra-CU, and if cu_sbp_flag is equal to 1, the diagonal partition is further applied to this intra-CU.
[0046] Figure 13 shows a method (1300) for diagonal partition-based intra-prediction of an image block in an encoder according to one embodiment. Method 1300 begins in step 1305. In step 1310, a list of most probable mode (MPM) candidates is generated. In steps 1320 and 1330, the encoder checks all potential intra-prediction modes by generating a prediction block P(n) and calculating the RD cost COST(n) for each potential intra-prediction mode n. The optimal intra-prediction mode m (e.g., the one with the lowest RD cost) is used to encode the current block (1340). If a negative intra-prediction mode is selected from these predefined modes (1350), diagonal partitioning is checked. In step 1360, the subpartition flag cu_sbp_flag, which indicates whether the block is diagonally divided into two subpartitions, is initialized to 0. In step 1370, the block is divided diagonally and the RD cost associated with the division is calculated. The RD costs with and without division are compared (1380). If the proposed diagonal partition-based intra prediction has a smaller RD cost, the diagonal partition is applied to the intra block and the subpartition flag cu_sbp_flag is encoded as 1 (1390). Method 1300 ends in step 1399.
[0047] Figure 14 shows a diagonal partition-based intra-prediction block generation process 1400 according to one embodiment. Method 1400 may be used in step 1370 to apply an intra-diagonal partition. When this diagonal partition is used, the intra-CU is divided into two triangular child partitions, namely partition 0 and partition 1 (1410). Partition 0 is predicted using the negative intra-prediction mode of the parent CU. Another child partition 1 is then intra-predicted using a different default or signaled intra-prediction mode. By enabling two different intra-prediction modes for an intra-block having two regions with different smoothness characteristics, more accurate predictions can be expected.
[0048] The partition location flag cu_sbp_pos is signaled to indicate which child partition is partition 0 (1420). 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 location flag cu_sbp_pos can also be implicit under several conditions, as described below, and signaling may be skipped.
[0049] The intra-prediction mode for partition 0 is copied directly from the current CU (1430). Depending on the different design principles, the intra-prediction mode for partition 1 may be either 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. After predicting each of the triangular partitions, the sample values along the diagonal edges / boundaries are adjusted using a blending process with an adaptive weighting mask or coefficients (1450). Further details of steps 1420, 1440, and 1450 are described below.
[0051] Figure 15 shows a method (1500) for performing diagonal partition-based intra-prediction in a decoder according to one embodiment. Method 1500 begins in step 1505. In step 1510, the intra-prediction mode m for the CU is decoded. If this intra-prediction mode is a negative intra-prediction mode (1520), the subpartition flag cu_sbp_flag is decoded to indicate whether the block is diagonally divided into two subpartitions (1530). If the intra-prediction mode m is not negative, or if cu_sbp_flag is equal to 0, the CU is intra-predicted in its intra-mode m (1570). If the CU is diagonally partitioned (1535), the 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). For partition 0, it is intra-predicted using intra-prediction mode m, which is directly copied from its parent CU (1560). After obtaining the predicted partitions 0 and 1, they are mixed to obtain the final predicted CU (1580). Method 1500 ends in step 1599.
[0052] One reason for applying additional diagonal partitions only to the negative intra-prediction mode is to ensure that there are reference samples available to predict both triangular partitions. According to a variant of this embodiment, the proposed diagonal intra-partitions are activated only when intra-prediction mode 34 is selected.
[0053] Determining partition 0 and partition 1 using the partition location flag cu_sbp_pos (1420) As explained in Figures 14 and 15, the partition location flag cu_sbp_pos is signaled to indicate which areas of the parent intra CU will be intra-predicted using the intra-prediction mode copied from the parent CU (partition 0). The remaining areas (partition 1) are intra-predicted using a different default mode or the signaled mode.
[0054] As shown in Figure 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 upper boundary.
[0055] Rather than signaling the partition location flag cu_sbp_pos, the intra-predicted partition location (partition 0) in inferred mode may be implicit under certain conditions to further improve coding efficiency and simplify the coding process.
[0056] In one example, partition 0 may implicitly follow the negative 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 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 if diagonal partitions are further applied to the intra-CU, when the intra-prediction mode of this CU belongs to the horizontal direction, it is more likely that horizontal intra-prediction will be performed using the left reference array for the region near the left boundary, and the remaining region with different change characteristics can be better intra-predicted using a different default mode or signaled mode.
[0057] The ranges of horizontal and vertical negative directions defined in this implicit signaling method can be further narrowed or expanded. For example, only modes 19-26 shown in Figure 6 may be classified as horizontal negative directions to which implicit signaling of the P0 / P1 partition applies, while modes 42-49 shown in Figure 6 are included in the vertical negative directions to which implicit signaling of the P0 / P1 partition applies.
[0058] Intra-prediction mode for partition 1: cu_sbp_mode(1440) As explained in Figures 14 and 15, partition 0, a child partition of the target intraCU, is intrapredicted using the intraprediction mode from its parent CU, while partition 1, the remaining child partition of the target intraCU, is intrapredicted using either 1) the default intraprediction mode (i.e., DC / horizontal / vertical mode), or 2) one of the signaled intraprediction modes from the remaining predefined intraprediction modes.
[0059] For simplicity, partition 1 can be automatically predicted intra-using DC mode. In this case, cu_sbp_mode is set to 1 (DC mode). The current sample value of partition 1 is predicted by calculating the average of reference samples from the left adjacent and / or upper adjacent, and when DC mode is applied, the reference sample from the upper left corner is not used in the prediction. This implementation can handle cases where a block has both a region of change along a particular direction and a region of constant change at the same time.
[0060] If the target intraCU is a square block, partition 1 is a symmetrical triangular partition as shown in Figure 17 (the reference sample used for partition 1 is marked in dark gray). Reference samples from both the left adjacent and the upper adjacent along length L are both used to calculate the average according to the following formula:
[0061]
number
[0062] If the target intraCU is a rectangular block, to avoid division operations for generating DC predictions, only the longer side along the left and top adjacents is used to calculate the average of the asymmetric triangular partition, as shown in Figure 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 adjacent portion along length L according to the following equation:
[0064]
number
[0065] Similarly, if the vertical side of partition 1 is longer, the intra-prediction p(x,y) is derived by averaging the reference samples from the left adjacent along length L according to the following equation:
[0066]
number
[0067] Depending on the variant of the asymmetric triangular partition, instead of using DC mode, the sample value of partition 1 can be predicted by using horizontal mode (cu_sbp_mode=18) or vertical mode (cu_sbp_mode=50).
[0068] When the vertical side of partition 1 along the left adjacent and upper adjacent is longer, the horizontal mode (mode 18) is implicitly the intra-prediction mode for partition 1. The intra-prediction p(x,y) is derived by copying the reference sample horizontally, as shown in Figure 19. Similarly, the vertical mode (mode 50) is applied when the horizontal side of partition 1 along the left adjacent and upper adjacent is longer, and the intra-prediction p(x,y) is derived by copying the reference sample vertically.
[0069] According to another variant, for an asymmetrical triangular partition, the sample value of current partition 1 can be predicted by using one mode selected from DC mode and horizontal / vertical mode. In this case, cu_sbp_mode is signaled to 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 the signaled intra-prediction mode cu_sbp_mode from 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 the DC mode or the horizontal / vertical mode, the reference sample in the upper left corner is not used for prediction, but if the mode cu_sbp_mode is one of the other intra-modes, the reference sample in the upper left corner may be used.
[0071] To speed up the mode selection process in the encoder, the number of intra-prediction mode candidates may be limited, or a different most likely mode (MPM) list may be used for the intra-prediction mode cu_sbp_mode of partition 1. For example, by considering the intra-modes of the left and above adjacent blocks of partition 1, a list with three MPMs is generated. Let's denote the mode of the left block as Left and the mode of the above block as Above.
[0072] If both Left and Above modes are available and they differ as shown in Figure 20, the MPM list is constructed as follows: -When both Left and Above modes are in non-angle mode: -MPM list → {DC,V,H} -When one of the modes, Left or Above, is an angular mode and the other is a non-angular mode: - Set Mode Max as the larger mode than Left and Above. -MPM list → {Max, DC, Max-1} -When both Left and Above modes are set to angle mode: - If partition 1 is a symmetrical triangular partition -MPM list → {DC,Left,Above} - When Partition 1 is an asymmetric triangular partition and the horizontal sides along the left adjacent part and the upper adjacent part of Partition 1 are longer - MPM list → {Left, H, Above} - Otherwise - 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 at an angle and they are equal, Partition 1 can simply infer this available mode Left or Above for intra prediction, as shown in FIG. 21.
[0074] Hybrid process (1450) using adaptive weights. After predicting each partition, the sample values on the split edge are adjusted using the following formula for the prediction pred for P0 P0 (x, y) and the prediction pred for P1 P1 (x, y) using a hybrid process with an adaptation coefficient W. pred boundary (x, y) = W * pred P0 (x, y) + (1 - W) * pred p1 (x, y) Here, the weighting coefficient can be 1 / 2 or 3 / 4, or other values, as shown in FIG. 22.
[0075] Similar to the Triangle Partitioning mode (TPM), to further reduce the boundary effect along two partitions P0 and P1, the proposed diagonal partition-based intra prediction operates using two intra prediction modes m and cu_sbp_mode, and uses mixing masks W0 and W1 for two predictions pred0(x, y) and pred1(x, y) for the CU to generate the final prediction block pred final (x, y). Nod final (x,y)=W0 * pred0(x,y)+W1 * pred1(x,y) The proposed intra-diagonal partition mixing masks W0 and W1 are derived from the distance between the sample position and the partition boundary, as shown in Figure 23. In this example, the weights {7 / 8, 6 / 8, 5 / 8, 4 / 8, 3 / 8, 2 / 8, 1 / 8} are used in the mixing process.
[0076] In one variant, the mixing masks W0 and W1 of the intra-diagonal partitions may also be asymmetrical around the diagonal edges, as shown in Figure 24. The predicted pred0(x,y), inferred from the intra-mode of the block to be the intra-predicted mode of the partition, may use larger weights for mixing. In this example, weights {3 / 4, 2 / 4, 1 / 4} are used in the mixing process.
[0077] According to another variant, mixing can be handled only at diagonal edges using a weighting coefficient W with the following equation: Nod final (x,y=W * pred0(x,y)+(1-W) * pred1(x,y) The weighting coefficient may be 1 / 2, 3 / 4, or any other value.
[0078] Geometric partitions for negative direction intra-prediction modes In the above, the CU is divided into two parts by a diagonal line. More generally, we propose dividing the intra-predicted CU into two parts by a geometrically placed straight line to better align the edges / boundaries of the two regions. The dividing line may be parallel to the intra-predicted mode or selected from several specific partitions, and the dividing line may start from the top-left position (0,0) or may have an offset.
[0079] Similar to diagonal partition-based intraprediction, the proposed geometric partition-based intraprediction allows for further division of the intrapredicted CU into two partitions. Each geometric partition within the CU, partition 0 and partition 1, is then intrapredicted in its own intramode using its available reference samples. After predicting each geometric partition, the sample values along the partition boundaries are adjusted using a blending process with adaptive weights. The weight coefficients can be derived from the distance between the sample location and the partition boundary.
[0080] Derivation of partition boundaries for geometric partition-based intraprediction As mentioned above, the geometric partition can divide the target CU into two parts by a dividing line parallel to the direction associated with the intra-prediction mode of the target CU.
[0081] As shown in the example in Figure 25(a), when the intra-prediction mode is mode 19, the division boundary (2510) is parallel to the negative horizontal direction. Alternatively, as shown in Figure 25(b), when the intra-prediction mode is mode 49, the division boundary (2520) is parallel to the negative vertical direction. As shown in Figure 25(c), when the intra-prediction direction of the target intra-CU is mode 34, the square block is subjected to the diagonal division (2530) as described above, and the rectangular block is subjected to a 45-degree division parallel to mode 34.
[0082] To further enhance the partitioning flexibility of the proposed intra-geometric partition, the partition boundaries can be selected from several predefined partitions, as shown in Figure 26. In this example, there are seven predefined partition boundaries, each representing an angle from 0 to -90 degrees in steps of 11.25 degrees. In this example, the syntax element cu_sbp_boundary is signaled to indicate which partition boundary is applied.
[0083] In another variation, the number of predefined division boundaries may be any value other than 7, or it may be a different value that is appropriate for the intra-prediction mode. For example, if the intra-prediction mode belongs to the horizontal negative direction (modes 19-33 shown in Figure 6), only half of the division boundaries closest to the upper part of Figure 26 are applied.
[0084] Geometric partition dividing line starting position cu_sbp_start As described 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 using 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 division start position is located. As shown in Figure 27, taking mode 34 as an example, there are three predefined division start positions. When cu_sbp_start=0, the 45-degree division line starts at the top-left position p(0,0). When cu_sbp_start is equal to 1, the 45-degree division line starts at the center of the left boundary.
[0086]
number
[0087]
number
[0088]
number
[0089] According to another variant, the 45-degree partition of the target CU can start from any position on the left or top boundary, as shown in Figure 28, with its coordinate information signaled in the bitstream. In this variant, the syntax flag cu_sbp_start_left is signaled to indicate whether the partition start position is located on the left boundary, followed by another syntax element cu_sbp_start_offset to indicate the distance between the partition 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) on 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) on the top boundary, and the distance x is signaled as cu_sbp_start_offset. This variant is more flexible for aligning with geometric edges / boundaries, but signaling cu_sbp_start_offset can be quite costly.
[0090] Determination of Partition 0 and Partition 1 based on area Since a geometric partition can divide the target CU into two asymmetrical parts, partition 0 can implicitly be determined according to the area 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 region with the 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 intraCU is likely to be predicted by the intra-mode of this CU, and only the remaining smaller area with different variation characteristics may need to be described intra-using a different mode. Otherwise, this target CU should be assigned a different intra-prediction mode.
[0092] Geometric partition-based intraprediction for angular modes As described above, in addition to checking geometric partitions after a negative intra-prediction mode is selected, in a third embodiment, we propose that after one angular intra-prediction mode is selected and reference adjacent samples of two regions become available, the intra-predicted CU is divided into two parts by geometrically arranged straight lines.
[0093] As a supplement to geometric partition-based intraprediction after the negative intraprediction mode is selected, it is proposed that after the positive intraprediction mode is selected, the geometric partition-based intraprediction may further divide the intrapredicted CU into two partitions, either from an upper-right position with an offset or from a lower-left position with an offset. Further details are described below.
[0094] Partition boundaries and start positions for geometric partition-based positive intra prediction As described above, after the negative intra-prediction mode is selected, the geometric partition can divide the target CU into two parts by a dividing line parallel to the intra-prediction mode of this CU.
[0095] As a supplement to the positive intra-prediction mode, geometric partition-based intra-prediction may further divide the intra-predicted CU into two partitions by a dividing line parallel to the intra-prediction mode of this CU. The division start position may be either an upper-right position with an offset, or a lower-left position with an offset.
[0096] As shown in the example in Figure 30, the dividing line may be parallel to the positive intra-prediction mode of the target intra-CU. If the intra-prediction mode is mode 8, which belongs to the horizontal positive direction, the dividing line is parallel to the horizontal positive direction. Alternatively, if the intra-prediction mode is mode 60, which is one of the vertical positive direction modes, the dividing line is parallel to the vertical positive 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 dividing lines for the positive intra-prediction mode can also be selected from several predefined partitions, as shown in the example in Figure 31, to further increase the flexibility of the division. There are four predefined dividing boundaries for the horizontal / vertical positive modes, each. The four predefined dividing boundaries in Figure 31(a) are used for the horizontal positive mode, each representing an angle from 0 to 45 degrees in 11.25-degree steps. The other four predefined dividing boundaries in Figure 31(b) are used for the vertical positive mode, representing an angle from -45 to -90 degrees in 11.25-degree steps. In this variant, the syntax element cu_sbp_boundary is signaled to indicate which dividing boundary is applied.
[0098] Geometric partition or diagonal partition-based intra-prediction check for angular intra-prediction modes before the optimal intra-prediction mode is selected. In the above, all proposed embodiments are applied only after an angular intra-prediction mode has been selected via a recursive RDO search. One advantage is that it limits the complexity of the search for intra-mode selection.
[0099] Instead of checking whether to split the CU into two parts only after an angular intra-prediction mode has been selected, the fourth embodiment proposes that geometric / diagonal intra-partitioning may be checked for angular intra-prediction mode candidates during the recursive RDO search before the best intra-prediction mode is selected. That is, the RD costs for some or all angular intra-prediction modes, with or without geometric / diagonal intra-partitioning, may be calculated, while the remaining intra-prediction modes are simply for which the RD cost is calculated without partitioning. The final intra-prediction mode is selected from all these possible situations and may yield the best RD performance.
[0100] For intra-predicted CUs that have an angular intra-prediction mode belonging to the mode required to check for partitioning, the subpartition 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] Figure 32 shows a method (3200) for performing intra-predictive mode search in an encoder according to one embodiment. Method 3200 begins in step 3205. In step 3210, a list of most likely mode (MPM) candidates is generated. In step 3220, the encoder checks for potential intra-predictive modes m by generating a predictive block P(m) and calculating the RD cost COST(m). For intra-modes that are one of the candidates to check for geometric intra-partitions (3230), the subpartition flag cu_sbp_flag, which indicates whether the block is diagonally divided into two subpartitions, is initialized to 0 (3240), the block is divided into two subpartitions, and the RD cost COST(m_sbp) is calculated (3250). If the geometric partition-based intra prediction has a lower RD cost (3260), the geometric partition is applied to the intra block, the subpartition flag cu_sbp_flag is encoded 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 all modes have been checked, control returns to step 3220. Otherwise, the encoder encodes the current block using the optimal intra prediction mode (3290). Method 3200 ends in step 3299.
[0102] Compared to Method 1300, this embodiment (3200) optimizes the best intra-predictive mode search while increasing the complexity of the search and the signaling cost of cu_sbp_flag. To balance complexity and coding efficiency, several search acceleration techniques are described in the following variations.
[0103] According to a variation of this embodiment, the proposed geometric / diagonal intra-partition may be checked only when one specific intra-prediction mode (e.g., mode 34) is checked.
[0104] According to another variation of this embodiment, the proposed geometric / diagonal intra-partition may 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 checked only when one of its left adjacent block or upper adjacent block applies the geometric / diagonal intrapartition.
[0106] According to another variation of this embodiment, a geometric / diagonal intrapartition may be checked only when both its left adjacent block and its upper adjacent block apply the geometric / diagonal intrapartition.
[0107] Proposed transformation selection for intra-geometric / diagonal partitioning After the final predicted signal for the entire CU is obtained through the process described above, transformation and quantization processes are applied to the entire CU, as with other intra-prediction modes. In this embodiment, the transformation selection may be applied to the intra-geometric partition.
[0108] In VVC, in addition to DCT2, the 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 tables are shown in Table 2. The introduction of MTS improves the efficiency of transforms in VVC, but the thorough RDO search for the optimal transform candidate imposes a significant computational load on the VVC encoder.
[0109] [Table 2]
[0110] In VVC, a CU level flag is signaled to indicate whether or not MTS is applied. In a fifth embodiment, we propose that when the proposed intra-geometric / diagonal partition is applied, the MTS CU level flag is inferred without being signaled.
[0111] If the difference between the intra-prediction modes of the two partitioned partitions (partition 0 and partition 1) is smaller than a predefined threshold, or if partition 1 is intra-predicted using DC mode, the MTS CU level flag is inferred to be 0, and DCT2 is applied in both directions. For the remaining cases where the content typically has very complex textures, MTS is likely to be applied because a single transformation (DCT2) alone is not efficient in modeling the different statistical variations. The MTS CU level flag is inferred to be 1, and then the two flags are directly signaled to indicate the transformation type in the horizontal and vertical directions, as shown in Table 3, respectively.
[0112] [Table 3]
[0113] According to a variation of this embodiment, the transformation type for an intra-CU using intra-geometric partitioning can be implicitly derived from the intra-prediction mode of the target intra-CU. The same logic can actually be implemented differently by using different coding parameters.
[0114] According to the modified embodiment described above, the range of directional intra-prediction modes in which the proposed geometric / diagonal intra-partition can be activated can be further narrowed. For example, the proposed geometric / diagonal intra-partition can be activated only after one intra-prediction mode has been selected from modes 26 to 42.
[0115] According to another variation of the embodiment described above, the target CU can be divided into three or more parts.
[0116] According to another variation of the aforementioned embodiment, when the proposed geometric / diagonal intra-partition is applied to the current CU, intra-subpartitions (ISPs) are not permitted.
[0117] Various methods are described herein, each of which includes one or more steps or actions to achieve the described method. Unless a particular order of steps or actions is required for the proper operation of the method, the order and / or use of any particular 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., for example, “first decoding” and “second decoding.” The use of such terms does not imply any ordering of modified operations unless specifically required. Therefore, in this embodiment, the first decoding does not need to be performed before the second decoding, and may occur, for example, before the second decoding, during the second decoding, or during a time overlapping with the second decoding.
[0118] Various methods and other embodiments described herein may be used to modify modules of a video encoder 200 and decoder 300, such as intra-prediction modules (260, 360), as shown in Figures 2 and 3. Furthermore, these embodiments are not limited to VVC or HEVC and may be applied to other standards and recommendations, and any extensions of such standards and recommendations. Unless otherwise specified or technically excluded, the embodiments described herein may be used individually or in combination.
[0119] Various numerical values are used in this application. The specific values are for illustrative purposes only, and the embodiments described are not limited to these specific values.
[0120] Various implementations include decoding. As used in this application, “decoding” may encompass all or part of the processes performed on the received encoded sequence to produce a final output suitable for display. In various embodiments, such processes include one or more of the processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. Whether the phrase “encoding process” is intended to refer specifically to a working subset or to a broader encoding process as a whole will become clear from the context of the specific description and will be well understood by those skilled in the art.
[0121] Various implementations involve encoding. Similar to the above considerations regarding "decoding," "encoding" as used in this application may encompass all or part of the process performed on an input video sequence to generate an encoded bitstream, for example.
[0122] Please note that the syntax elements used herein are descriptive terms; therefore, they do not preclude the use of other syntax element names.
[0123] The implementations and embodiments described herein may be implemented, for example, in methods or processes, apparatus, software programs, data streams, or signals. Even if considered only in the context of a single form of implementation (e.g., considered only as a method), the implementations of the considered features may also be implemented in other forms (e.g., apparatus or programs). Apparatus may be implemented, for example, with appropriate hardware, software, and firmware. The method may be implemented in 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 communication devices, such as, for example, computers, mobile phones, personal digital assistants ("PDAs"), and other devices that facilitate the communication of information between end users.
[0124] References to “one embodiment” or “a certain embodiment,” or “one implementation” or “a certain implementation,” or to other variations thereof, mean that the specific features, structures, characteristics, etc. described in relation to that embodiment are included in at least one embodiment. Therefore, when the phrases “in one embodiment” or “in a certain embodiment,” or “in one implementation” or “in a certain implementation,” or other variations appear in various places throughout this application, they do not necessarily all refer to the same embodiment.
[0125] In addition, this application may refer to "determining" various types of information. Determining information may include, for example, one or more of the following: estimating information, calculating information, predicting information, or retrieving information from memory.
[0126] Furthermore, this application may refer to “accessing” various types of information. Accessing information may include, for example, one or more of the following: receiving information, retrieving information (e.g., from memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.
[0127] In addition, this application may refer to "receiving" various types of information. Receiving is intended to be a broad term, similar to "accessing." Receiving information may include, for example, accessing information or retrieving information (for example, from memory) one or more of these. Furthermore, "receiving" is typically involved in some way in operations 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 cases of "A / B", "A and / or B", and "at least one of A and B", it should be understood that the use of any of the following " / ", "and / or", and "at least one of" is intended to encompass the selection of only the first listed option (A), only the second listed option (B), or both options (A and B). In further embodiments, in the cases of "A, B, and / or C" and "at least one of A, B, and C," such expressions are intended to encompass the selection of only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or the selection of all three options (A, B, and C). This can be extended to the number of listed items, as will be apparent to those skilled in the art in this and related fields.
[0129] Furthermore, as used herein, the term “signaling” specifically means indicating something to the corresponding decoder. For example, in certain embodiments, the encoder signals a quantization matrix for dequantization. Thus, in certain embodiments, the same parameter is used on both the encoder and decoder sides. Therefore, for example, the encoder can transmit a specific parameter to the decoder so that the decoder can use the same specific parameter (explicit signaling). In contrast, if the decoder already has other parameters along with that specific parameter, it can use non-transmitting signaling (implicit signaling) so that the decoder simply knows and can select that specific parameter. Bit saving is achieved in various embodiments by avoiding the transmission of any actual function. 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 the corresponding decoder. The above relates to the verb form of the word “signal,” which may also be used as a noun herein.
[0130] As will be apparent to those skilled in the art, implementations can generate various signals formatted to carry information that can be stored or transmitted. This information may include, for example, instructions for performing a method or data generated by one of the described implementations. For example, a signal can be formatted to carry a bitstream of the described embodiment. Such a signal can be formatted, for example, as an electromagnetic wave (using, for example, the 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 carried by the signal may be, for example, analog or digital information. The signal can be transmitted by various different wired or wireless links, as is known. The signal can be stored in a processor-readable medium.
Claims
1. A method for video decoding, To obtain the intra-predictive mode for picture blocks, The process involves determining a straight line based on the intra-prediction mode for the block, wherein the straight line is set to be parallel to the direction associated with the intra-prediction mode for the block. The method involves dividing the block of the picture into at least two partitions by the aforementioned straight line, wherein the straight line is not a horizontal or vertical line. In order to obtain prediction samples of the first partition among the at least two partitions, intra-prediction is performed using a first intra-prediction mode, wherein the first intra-prediction mode corresponds to the intra-prediction mode for the block. To obtain prediction samples for the second partition of the at least two partitions, intra-prediction is performed using the second intra-prediction mode, Using a blending process with adaptive weights, the values of the predicted samples in the first and second partitions are adjusted along the straight line, Decoding the block based on the predicted samples of the first partition and the second partition, Methods that include...
2. The method according to claim 1, wherein the division, execution, and adjustment are applied only when the intra prediction mode is an angle prediction mode.
3. The method according to claim 1, wherein the adaptive weights are asymmetrical with respect to the straight line.
4. Selecting one or more transformations for the block based on at least one of the first intra prediction mode and the second intra prediction mode, The method according to claim 1, further comprising:
5. A method for video encoding, To obtain the intra-predictive mode for picture blocks, The process involves determining a straight line based on the intra-prediction mode for the block, wherein the straight line is set to be parallel to the direction associated with the intra-prediction mode for the block. The method involves dividing the block of the picture into at least two partitions by the aforementioned straight line, wherein the straight line is not a horizontal or vertical line. In order to obtain prediction samples of the first partition among the at least two partitions, intra-prediction is performed using a first intra-prediction mode, wherein the first intra-prediction mode corresponds to the intra-prediction mode for the block. To obtain prediction samples for the second partition of the at least two partitions, intra-prediction is performed using the second intra-prediction mode, Using a blending process with adaptive weights, the values of the predicted samples in the first and second partitions are adjusted along the straight line, Encoding the block based on the predicted samples of the first partition and the second partition, Methods that include...
6. Encoding the intra-prediction mode with respect to the block, wherein the division, execution, and adjustment are applied only when the intra-prediction mode is an angle prediction mode. The method according to claim 5, further comprising:
7. The method according to claim 5, wherein the adaptive weights are asymmetrical with respect to the straight line.
8. Selecting one or more transformations for the block based on at least one of the first intra prediction mode and the second intra prediction mode, The method according to claim 5, further comprising:
9. A device for video decoding comprising one or more processors and at least one memory, wherein the one or more processors are Get the intra-predictive mode for the picture block, A straight line is determined based on the intra-prediction mode for the block, and the straight line is set to be parallel to the direction associated with the intra-prediction mode for the block. The aforementioned straight line divides the block of the picture into at least two partitions, and the aforementioned straight line is different from a horizontal or vertical line. To obtain prediction samples for the first partition of the at least two partitions, intraprediction is performed using a first intraprediction mode, wherein the first intraprediction mode corresponds to the intraprediction mode for the block. In order to obtain prediction samples for the second partition of the at least two partitions, intra-prediction is performed using the second intra-prediction mode. Using a blending process with adaptive weights, the values of the predicted samples in the first and second partitions are adjusted along the straight line. The block is decoded based on the predicted samples of the first partition and the second partition. A device configured in such a way.
10. The apparatus according to claim 9, wherein the one or more processors are configured to divide, execute, and adjust only when the intra prediction mode is an angle prediction mode.
11. The apparatus according to claim 9, wherein the adaptive weights are asymmetrical with respect to the straight line.
12. The one or more processors described above Based on at least one of the first intra-prediction mode and the second intra-prediction mode, one or more transformations are selected for the block. The apparatus according to claim 9, further configured as follows.
13. A device for video encoding comprising one or more processors and at least one memory, wherein the one or more processors are Get the intra-predictive mode for the picture block, A straight line is determined based on the intra-prediction mode for the block, and the straight line is set to be parallel to the direction associated with the intra-prediction mode for the block. The aforementioned straight line divides the block of the picture into at least two partitions, and the aforementioned straight line is different from a horizontal or vertical line. To obtain prediction samples for the first partition of the at least two partitions, intraprediction is performed using a first intraprediction mode, wherein the first intraprediction mode corresponds to the intraprediction mode for the block. In order to obtain prediction samples for the second partition of the at least two partitions, intra-prediction is performed using the second intra-prediction mode. Using a blending process with adaptive weights, the values of the predicted samples in the first and second partitions are adjusted along the straight line. The blocks are encoded based on the predicted samples of the first and second partitions. A device configured in such a way.
14. The one or more processors described above Encoding the intra prediction mode for the block, The apparatus according to claim 13, further configured such that one or more processors are configured to divide, execute, and adjust only when the intra-prediction mode is an angle prediction mode.
15. The apparatus according to claim 13, wherein the adaptive weights are asymmetrical with respect to the straight line.
16. The one or more processors described above Based on at least one of the first intra-prediction mode and the second intra-prediction mode, one or more transformations are selected for the block. The apparatus according to claim 13, further configured as follows.