Encoding and decoding methods using L-shaped partitions and corresponding devices

By partitioning the image block into an L-shaped partition and adopting a method of defining the configuration subset, the problems of high computational complexity and insufficient compression efficiency in the prior art are solved, and more efficient video encoding and better intra prediction effects are achieved.

CN120359744APending Publication Date: 2025-07-22INTERDIGITAL CE PATENT HOLDINGS SAS
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380086029.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-12-13
Filing Date
2023-11-27
Publication Date
2025-07-22

AI Technical Summary

Technical Problem

The existing video encoding technology has high computational complexity and insufficient compression efficiency when processing image blocks, especially in the intra prediction and transformation process, and fails to fully utilize the spatial and temporal redundancy of the image blocks.

Method used

The image block is partitioned into at least two partitions, one of which is an L-shaped partition, by defining a configuration subset to reduce computational complexity, and using an L-shaped partition for intra prediction and transformation, including directional intra prediction mode and multi-reference line intra prediction.

Benefits of technology

It improves the compression efficiency and computing efficiency of video encoding, reduces the computational complexity, and improves the accuracy and compression performance of intra prediction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120359744A_ABST
    Figure CN120359744A_ABST
Patent Text Reader

Abstract

A method of encoding an image block is disclosed. An image block to be encoded is first partitioned in at least two partitions, wherein one of the at least two partitions is an L-shaped partition. Each partition is then encoded in the encoded data.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - reference to related applications This application claims the benefit of European Application No. 22306861.0, filed on December 13, 2022, which is hereby incorporated by reference in its entirety. Technical field

[0002] At least one in this embodiment generally relates to methods and apparatuses for encoding (or decoding) picture blocks, and more particularly to methods and apparatuses for encoding (or decoding) picture blocks that are split into partitions. Background art

[0003] To achieve high compression efficiency, image and video coding schemes typically employ prediction and transformation to exploit spatial and temporal redundancies in video content. Generally, intra - frame or inter - frame prediction is used to exploit intra - frame or inter - frame picture correlations, and then, the difference between the original block and the predicted block (often labeled as prediction error or prediction residue) is transformed, quantized, and entropy - encoded. To reconstruct the video, the compressed data is decoded through inverse processes corresponding to entropy coding, quantization, transformation, and prediction. Summary of the invention

[0004] In one embodiment, an image block to be encoded (or decoded) is partitioned into at least two partitions, at least one of the partitions having an L - shape. Various configurations are defined based on the position of the L - shape within the image block. To reduce computational complexity, only a subset of the configurations may be allowed.

[0005] In another embodiment, a decoding method is disclosed. Brief description of the drawings

[0006] Figure 1 A block diagram of a system within which aspects of this embodiment can be implemented is illustrated; Figure 2 A block diagram of an embodiment of a video encoder is illustrated; Figure 3 A block diagram of an embodiment of a video decoder is illustrated; Figure 4 The principle of directional intra - frame prediction using reference neighbor samples is illustrated; Figure 5 The directional intra - frame modes defined in the common video coding and enhanced compression model are depicted; Figure 6A And 6B The horizontal and vertical partitions that make a luminance intra - frame prediction block into sub - partitions are illustrated; Figure 7A An example of four reference lines to be used by the multi - reference line (MRL) intra - frame prediction process is depicted; Figure 7B depicts the set of all coding unit split patterns supported in VVC draft 6; Figure 8 depicts a flowchart of an encoding method according to an embodiment; Figure 9 illustrates the partitioning of a square block into two partitions with an upper-left L-shaped partition according to an embodiment; Figure 10 depicts different configurations for partitioning a square block into two partitions according to an embodiment, one partition being an L-shaped partition; Figure 11 depicts different configurations for partitioning a rectangular block into two partitions according to an embodiment, one partition being an L-shaped partition; Figure 12 depicts different configurations for non-binary partitioning of a square block into two partitions according to an embodiment, one partition being an L-shaped partition; Figure 13 illustrates the partitioning of square and rectangular blocks into three partitions with two L-shaped partitions according to an embodiment; Figure 14 illustrates a prediction process for a negative intra prediction direction in the case of an upper-left configuration of an L-shaped partition according to an embodiment; Figure 15 illustrates a prediction process for a positive intra prediction direction in the case of an upper-left configuration of an L-shaped partition according to an embodiment; Figure 16 illustrates a prediction process for a horizontal positive intra prediction direction in the case of a lower-left configuration of an L-shaped partition according to an embodiment; Figure 17 illustrates a prediction process for a positive intra prediction direction in the case of a lower-right configuration of an L-shaped partition according to an embodiment; Figure 18 illustrates a prediction process for a negative intra prediction direction in the case of a lower-right configuration of an L-shaped partition according to an embodiment; Figure 19 illustrates intra prediction according to a plane mode for an L-shaped partition according to an embodiment; Figure 20 illustrates a forward transformation process of a prediction residual block; Figure 21A and 21B illustrates a forward transformation process of an L-shaped prediction residual block according to an embodiment; Figure 22 and 23 illustrates various scans of an L-shaped block of quantized transform coefficients; Figure 24 depicts a flowchart of a decoding method according to an embodiment; and Figure 25 depicts the set of all coding unit splitting patterns according to an embodiment. Detailed Description

[0007] This application describes various aspects, including tools, features, embodiments, models, schemes, etc. Many of these aspects are described specifically and often in a way that may sound restrictive at least to illustrate individual characteristics. However, this is for the purpose of clarity in the description and does not limit the application or scope of those aspects. Indeed, all different aspects can be combined and interchanged to provide further aspects. In addition, this aspect can also be combined and interchanged with aspects described in earlier submissions.

[0008] The aspects described and contemplated in this application can be implemented in many different forms. The following Figure 1 , 2 and 3 provide some embodiments, but other embodiments can be contemplated and Figure 1 , 2 and the discussion of 3 do not limit the breadth of the implementation. At least one of the aspects generally relates to video encoding and decoding, and at least one other aspect generally relates to transmitting the generated or encoded bitstream. These and other aspects can be implemented as methods, apparatuses, computer-readable storage media having instructions for encoding or decoding video data according to any of the described methods stored thereon, and / or computer-readable storage media having a bitstream generated according to any of the described methods stored thereon.

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

[0010] This aspect is not limited to VVC (Versatile Video Coding), ECM (Enhanced Compression Model), or HEVC (High Efficiency Video Coding), and can be applied, for example, to other standards and recommendations (whether pre-existing or future-developed) and extensions of any such standards and recommendations (including VVC, ECM, and HEVC). Unless otherwise indicated or technically excluded, the aspects described in this application can be used individually or in combination.

[0011] In the present application, the terms "reconstructed" and "decoded" may be used interchangeably, the terms "encoded" or "encoding" may be used interchangeably, the terms "pixel" and "sample" may be used interchangeably, and the terms "image", "picture", and "frame" may be used interchangeably. Generally but not necessarily, the term "reconstructed" is used at the encoder side, while "decoded" is used at the decoder side. Hereinafter, the terms "intra mode" and "intra prediction mode" are used interchangeably. The terms "directional intra prediction mode", "directional prediction mode", "directional intra mode", "directional mode", "angular mode", and "angular intra prediction mode" are used interchangeably.

[0012] Figure 1 A block diagram illustrating 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 in the present application. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptop computers, smart phones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected household appliances, and servers. The elements of System 100 may be embodied singly or in combination in a single integrated circuit, multiple ICs, and / or discrete components. For example, in at least one embodiment, the processing and encoder / decoder elements of System 100 are distributed across multiple ICs and / or discrete components. In various embodiments, System 100 is communicatively coupled to other systems or to other electronic devices via, for example, 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 in the present application.

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

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

[0015] Program code to be loaded onto the processor 110 or the encoder / decoder 130 to perform the various aspects 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, the memory 120, the storage device 140, and the 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 operation logic.

[0016] In some embodiments, the memory internal to the processor 110 and / or the encoder / decoder module 130 is used to store instructions and provide working memory for the processing required during encoding or decoding. However, in other embodiments, memory external to the processing device (e.g., the processing device may be the processor 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, such as dynamic volatile memory and / or non-volatile flash memory. In several embodiments, the external non-volatile flash memory is used to store the operating system of the television. In at least one embodiment, fast external dynamic volatile memory such as RAM is used as the working memory for video encoding and decoding operations (such as for MPEG-2 (MPEG stands for Moving Picture Experts Group, MPEG-2 is also known as ISO / IEC 13818, and 13818-1 is also known as H.222, and 13818-2 is also known as H.262), HEVC (HEVC stands for High Efficiency Video Coding, also known as H.265 and MPEG-H Part 2), or VVC (Versatile Video Coding: a new standard being developed by the Joint Video Experts Team JVET)).

[0017] Inputs to the components of system 100 can be provided through various input devices as indicated in block 105. Such input devices include, but are not limited to: (i) a radio frequency (RF) section that receives, for example, RF signals transmitted over the air by a broadcaster; (ii) a component (COMP) input terminal (or a collection of COMP input terminals); (iii) a universal serial bus (USB) input terminal; and / or (iv) a high-definition multimedia interface (HDMI) input terminal. Figure 1 Other examples not shown include composite video.

[0018] In various embodiments, the input devices of block 105 have associated corresponding input processing elements as known in the art. For example, the RF section can be associated with elements suitable for the following operations: (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 can be referred to as a channel, for example, in some embodiments; (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 to 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 can include: a tuner that performs various of these functions, including, for example, down-converting the received signal to a lower frequency (e.g., an intermediate frequency or a near-baseband frequency) or to baseband. In one set-top box embodiment, the RF section and its associated input processing elements receive RF signals transmitted over a wired (e.g., cable) medium and perform frequency selection by filtering, down-converting, and filtering again to a desired frequency band. Various embodiments reorder the elements described above (and others), remove some of these elements, and / or add other elements that perform similar or different functions. Adding elements can include inserting elements between existing elements, such as inserting an amplifier and an analog-to-digital converter. In various embodiments, the RF section includes an antenna.

[0019] Additionally, the USB and / or HDMI terminals may include respective interface processors for connecting system 100 to other electronic devices across the USB and / or HDMI connections. It should be understood that various aspects of input processing, such as Reed-Solomon error correction, may be implemented, for example, within a separate input processing IC or within processor 110 when necessary. Similarly, aspects of USB or HDMI interface processing may be implemented within a separate interface IC or within processor 110 when necessary. The demodulated, error-corrected, and demultiplexed stream is provided to various processing elements, including, for example, processor 110 and encoder / decoder 130 that operate in conjunction with memory and storage elements to process the data stream as necessary for presentation on an output device.

[0020] The various elements of system 100 may be provided within an integrated housing, within which the various elements may be interconnected and data may be transferred therebetween using a suitable connection arrangement 115, such as an internal bus known in the art, including an I2C bus, wiring, and printed circuit boards.

[0021] 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, a transceiver configured to transmit and receive data over the communication channel 190. The communication interface 150 may include, but is not limited to, a modem or a network card, and the communication channel 190 may be implemented in, for example, a wired and / or wireless medium.

[0022] In various embodiments, data streams are delivered to system 100 using a Wi-Fi network such as IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). The Wi-Fi signals of these embodiments are received over a communication channel 190 and communication interface 150 that are adapted for Wi-Fi communication. The communication channel 190 of these embodiments is typically connected to an access point or router that provides access to an external network including the Internet to allow for streaming applications and other over-the-top communications. Other embodiments use a set-top box that delivers streaming data to system 100 over the HDMI connection of input box 105. Still other embodiments use the RF connection of input box 105 to deliver streaming data to system 100. As indicated above, various embodiments provide data in a non-streaming manner. Additionally, various embodiments use wireless networks other than Wi-Fi, such as cellular networks or Bluetooth networks.

[0023] System 100 can provide output signals to various output devices, including a display 165, a speaker 175, and other peripheral devices 185. The display 165 of various embodiments includes one or more of the following: for example, a touchscreen display, an organic light emitting diode (OLED) display, a curved display, and / or a foldable display. The display 165 can be used for a television, a tablet, a laptop computer, a cellular phone (mobile phone), or other devices. The display 165 can also be integrated with other components (such as in a smart phone) or be separate (such as an external monitor for a laptop computer). In various examples of embodiments, other peripheral devices 185 include one or more of a standalone digital video disc (or digital versatile disc) (DVR, for both terms), a disc player, a stereo system, and / or a lighting system. Various embodiments use one or more peripheral devices 185 that function based on the output of system 100. For example, the disc player performs the function of playing the output of system 100.

[0024] In various embodiments, signaling such as AV is used to transfer control signals between system 100 and the display 165, the speaker 175, or other peripheral devices 185. A link, CEC, or other communication protocol for device-to-device control is implemented with or without user intervention. The output devices can be communicatively coupled to system 100 via dedicated connections through respective interfaces 160, 170, and 180. Alternatively, the output devices can be connected to system 100 using a communication channel 190 via a communication interface 150. The display 165 and the speaker 175 can be integrated with other components of system 100 in an electronic device (such as a television) in a single unit. In various embodiments, the display interface 160 includes a display driver, for example, a timing controller (T Con) chip.

[0025] The display 165 and the speaker 175 can alternatively be separate from one or more of the other components, for example if the RF portion of the input 105 is part of a separate set-top box. In various embodiments where the display 165 and the speaker 175 are external components, the output signals can be provided via a dedicated output connection that includes, for example, an HDMI port, a USB port, or a COMP output.

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

[0027] Figure 2 An example video encoder 200, such as a VVC (Versatile Video Coding) encoder, is illustrated. Figure 2 An encoder that improves on the VVC standard or an encoder that employs techniques similar to VVC may also be illustrated.

[0028] Before being encoded, the video sequence may undergo pre-encoding processing (201), for example: applying a color transformation to the input color picture (e.g., conversion from RGB 4:4:4 to YCbCr 4:2:0), or performing 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 preprocessing and attached to the bitstream.

[0029] In encoder 200, pictures are encoded by encoder elements as described below. The picture to be encoded is partitioned (202) and processed in units such as CUs (Coding Units). Each unit is encoded using, for example, an intra-frame or inter-frame mode. When a unit is encoded in the intra-frame mode, it performs intra-frame prediction (260), for example using intra-frame prediction tools such as decoder-side intra-mode derivation (DIMD). In the inter-frame mode, motion estimation (275) and compensation (270) are performed. The encoder decides (205) which of the intra-frame mode or inter-frame mode is to be used to encode the unit and indicates the intra / inter-frame decision, for example, by a prediction mode flag. The prediction residual is calculated, for example, by subtracting (210) the predicted block from the original image block.

[0030] The prediction residual is then transformed (225) and quantized (230). Video coding standards such as High Efficiency Video Coding (HEVC), Versatile Video Coding (VVC), and Enhanced Compression Model (ECM 6.0) support different types of block transforms designed for square or rectangular blocks, such as DCT (Discrete Cosine Transform) or DST (Discrete Sine Transform). These transforms are typically applied separately to blocks of the prediction residual obtained after intra-frame or inter-frame prediction.

[0031] Entropy encode (245) the quantized transform coefficients, motion vectors, and other syntax elements (such as picture partitioning information) to output a bitstream. The encoder may skip the transform and apply quantization directly to the untransformed residual signal. The encoder may bypass both the transform and quantization, i.e., directly encode the residual without applying the transform or quantization process.

[0032] The encoder decodes the encoded blocks to provide references for further prediction. The quantized transform coefficients are dequantized (240) and inverse-transformed (250) to decode the prediction residual. The image block is reconstructed by combining (255) (e.g., adding) the decoded prediction residual and the predicted block. A loop filter (265) is applied to the reconstructed picture to perform, for example, deblocking / SAO (Sample Adaptive Offset) / ALF (Adaptive Loop Filter) filtering to reduce coding artifacts. The filtered image is stored in the reference picture buffer (280).

[0033] Figure 3 A block diagram of an example video decoder 300 is illustrated. In decoder 300, the bitstream is decoded by decoder elements as described below. Video decoder 300 generally performs a decoding pass reciprocal to the encoding pass as Figure 2 described. Encoder 200 generally also performs video decoding as part of encoding the video data. In particular, the input to the decoder includes: a video bitstream, which may be generated by video encoder 200. First, the bitstream is entropy decoded (330) to obtain transform coefficients, prediction modes, motion vectors, and other encoded information. The picture partitioning information indicates how the picture is partitioned. Thus, the decoder may partition (335) the picture according to the decoded picture partitioning information. The transform coefficients are dequantized (340) and inverse-transformed (350) to decode the prediction residual. The image block is reconstructed by combining (355) (e.g., adding) the decoded prediction residual and the predicted block. The predicted block may be obtained from intra prediction (360) or motion-compensated prediction (i.e., inter prediction) (375) (370). A loop filter (365) is applied to the reconstructed image. The filtered image is stored at the reference picture buffer (380). Note that for a given picture, the content of reference picture buffer 380 on the decoder 300 side is the same as the content of reference picture buffer 280 on the encoder 200 side for the same picture.

[0034] The decoded picture may further undergo post - decoding processing (385), such as an inverse color transformation (e.g., conversion from YCbCr 4:2:0 to RGB 4:4:4) or an inverse remapping that performs an inverse operation 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.

[0035] In VVC and ECM, intra - prediction is applied in all intra - frames (i.e., frames including only intra - blocks) and in intra - blocks in inter - frames, where the coding unit (CU) is spatially predicted from causal neighbor blocks (i.e., the top and top - right blocks, the left and bottom - left blocks, and the top - left block) in the same frame. Based on the decoded pixel values in these blocks, the encoder constructs different predictions for the current block to be encoded (also referred to as the target block) and selects the one that results in the best rate - distortion (RD) performance. On the decoder side, a single prediction is obtained for the target block (i.e., the block to be decoded) based on the decoded pixel values in the causal neighbor blocks. The single prediction is the prediction corresponding to the intra - prediction mode selected and encoded by the encoder.

[0036] In other words, intra - prediction (260, 360) is used to remove the correlation within a local region of the picture. The basic assumption for intra - prediction is that the texture of the current picture region is similar to the texture in the local neighborhood (e.g., the picture blocks adjacent to the current region), and thus can be predicted from there. Generally, direct neighbor samples are adopted for prediction, i.e., the samples from the sample row above the current block to be encoded (or decoded) and the samples from the last column of the reconstructed block to the left of the current block. The samples used to predict the current block belong to the causal neighborhood, i.e., they are available (and thus have been reconstructed) when encoding or decoding the current block.

[0037] The reference neighbor samples used to predict the current block depend on the intra - prediction mode and may depend on the direction indicated by the intra - prediction angle of the corresponding intra - prediction mode. An illustration of directional intra - prediction using its reference neighbor samples is shown in Figure 4 For example, for horizontal prediction (case (a)), the reference neighbor samples from the left column are directly used; for vertical prediction (case (c)), the reference neighbor samples from the upper row are directly used; for diagonal bottom - right prediction (case (b)), the reference neighbor samples from the upper - left side are applied, and for diagonal bottom - left prediction (case (d)), the reference neighbor samples from the upper - right side are applied.

[0038] In the following sections, various tools for enhancing intra - prediction in the enhanced compression model (ECM) are detailed.

[0039] To capture any edge direction present in natural videos, the number of directional intra modes in Versatile Video Coding (VVC) and Enhanced Compression Model (ECM) is extended from 33, as used in High Efficiency Video Coding (HEVC), to 65, as depicted in Figure 5 and the PLANAR and DC modes remain the same. These more densely directional intra prediction modes apply to all block sizes and apply to both luminance and chrominance intra prediction.

[0040] In VVC and ECM, the target block (i.e., the block to be encoded or decoded) has the option of being intra predicted by a first method (intra prediction for the entire CU) or by a second method (Intra-SubPartitions (ISP) of the CU). In the first method, all target pixels are simultaneously predicted in a classical manner based on the reference samples of the entire CU. In the second method, the target CU is partitioned into two or four sub-partitions (e.g., of equal size) that are sequentially encoded (or decoded) using the prediction mode of the CU. That is, each sub-partition is encoded (or decoded) separately, where its target pixels are predicted using its own reference samples. Since the sub-partitions are sequentially encoded (or decoded), the sub-partitions can benefit from the availability of decoded samples from adjacent sub-partitions that are direct neighbors of the current sub-partition. This can lead to better prediction and compression efficiency than the first method in some cases.

[0041] Intra Sub-Partition (ISP) Both Versatile Video Coding (VVC) and Enhanced Compression Model (ECM 6.0) support Intra-SubPartitions (ISP) where the target block can be partitioned vertically or horizontally into two or four sub-partitions according to the target block size as shown in Table 1. The sub-partitions are sequentially encoded and decoded using the target block, which is considered as a single Coding Unit (CU). All sub-partitions use the prediction mode of the target block (also called the parent coding unit) for intra prediction, and with sequential processing, the decoded pixels in one sub-partition are used as reference samples for intra prediction of the next sub-partition.

[0042] A sub-partition has at least 16 pixels. Thus, a 4x4 block is not partitioned into sub-partitions, while 4x8 and 8x4 blocks have only two partitions. Blocks of all other sizes have only four sub-partitions. The sub-partitions can be horizontal or vertical. A 4x8 block can have only two vertical partitions each of size 4x4, while an 8x4 block can have only two horizontal partitions each of size 4x4. Similarly, as another example, a 4x16 block can have four vertical sub-partitions each of size 4x4 or four horizontal sub-partitions each of size 1x16. Figure 6A and Figure 6BAn example showing two possibilities is presented. Block Size Number of Sub-Partitions 4×4 1 4×8 and 8×4 2 All Other Cases 4 Table 1 - Number of sub - partitions according to block size

[0043] For the pixels in each of these sub - partitions, a prediction is constructed using the decoded prediction mode of the parent CU. These predicted values are added to the decoded residual values, which are generated by entropy - decoding the coefficients sent by the encoder and then de - quantizing and inverse - transforming them. The inverse transform is applied at the sub - partition level, just as the forward transform was applied at the encoder. Except for the first sub - partition, the reconstructed pixel values of each sub - partition can be used to generate the prediction for the next sub - partition. The decoded pixels on the last row (horizontal split) or the last column (vertical split) can be used as the top or left reference array, respectively, for the next sub - partition.

[0044] The sub - partitions are processed in normal order, regardless of the intra - prediction mode and split utilized. That is, the first sub - partition to be processed is the one that contains the top - left sample of the CU and then continues sequentially down (horizontal split) or to the right (vertical split). The split type of the CU is signaled using bit "0" (NO_SPLIT) or bits "10" or "11" (for HOR_SPLIT and VER_SPLIT, respectively).

[0045] For each intra - coded block, a flag (e.g., isp_flag) is signaled to indicate whether the ISP is to be applied. Under the condition that isp_flag is true, another syntax (e.g., isp_mode) is further signaled to specify whether the split is vertical or horizontal.

[0046] Multi-Reference Line (MRL) VVC and ECM also support intra - prediction using multiple reference lines (MRL). The target block can choose to use whichever of the first, second, and third reference lines gives the best rate - distortion performance. The MRL prediction mode is motivated by the observation that non - adjacent reference lines are mainly beneficial for texture patterns with sharp and strongly - oriented edges. If the texture pattern is smooth, the MRL prediction mode is expected to be less useful. In Figure 7A , an example of 4 reference lines is depicted, where the samples of segments A and F are not taken from the reconstructed adjacent samples, but are filled using the closest samples from segments B and E, respectively. HEVC intra - picture prediction uses the nearest reference line (i.e., reference line 0). For example, in VVC, MRL intra - prediction uses 2 additional lines (reference line 1 and reference line 2).

[0047] The index of the selected reference line is signaled using a tag of one bit (0), e.g., mrl_idx, to indicate the first reference line, or using a tag of two bits (10 or 11), e.g., mrl_idx, to signal the index of the selected reference line to indicate the second or third reference line, respectively. In VVC and ECM, ISP is considered only for the first reference line. Therefore, if the block has an MRL index other than 0, the isp_flag is inferred to be 0 and, thus, it is not sent to the decoder. In this case, intra prediction is performed for the entire CU without any splitting. Therefore, the isp_flag is parsed according to whether the mrl_idx tag is 0.

[0048] In HEVC, VVC, and ECM, compression is done at the block level rather than at the whole image level or at the level of the entire frame of the sequence. Thus, the frame is partitioned into a set of non-overlapping blocks called coding tree units (CTUs), and then each CTU is compressed by sequentially scanning them. A CTU undergoes recursive partitioning into blocks called coding units (CUs), which undergo prediction before applying a transform on the prediction residual. In an intra frame, all CUs undergo intra prediction based on previously decoded neighbor pixels in the same frame, while in an inter frame, a CU can have intra prediction or inter prediction based on pixels in adjacent regions in a previously decoded frame. These CUs can have only a binary square shape (in HEVC) or a binary square or rectangular shape due to quadtree (QT), binary tree (BT), and ternary tree (TT) partitioning structures (in VVC and ECM). More precisely, in VVC, first, the coding tree unit (CTU) is partitioned by a quadtree structure, and then each quadtree leaf node can be further partitioned in a binary or ternary manner. As Figure 7B shown, in addition to NO_SPLIT and quadtree split (QT_SPLIT), there are four split types in VVC: vertical binary split (BT_VER), horizontal binary split (BT_HOR), vertical ternary split (TT_VER), and horizontal ternary split (TT_HOR). The TT_HOR or TT_VER split (horizontal or vertical ternary tree split mode) consists of dividing the parent block into 3 sub-blocks (e.g., CUs), where the corresponding sizes in the direction of the considered spatial partition are equal to 1 / 4, 1 / 2, and 1 / 4 of the parent block size.

[0049] In the same way, the sub-partitioning defined by the ISP tool in VVC and ECM has been designed for binary coding units (CUs) and always has a rectangular or square shape according to the target CU size.

[0050] The CTU recursive partitioning of a CU or the ISP partitioning where a CU becomes a sub - partition may sometimes lead to sub - optimal partitioning, for example because it does not correspond to the underlying objects in those CUs. Therefore, extending the CTU recursive partitioning and ISP partitioning to other types of partitioning can improve the compression efficiency.

[0051] In the following sections, the CTU recursive partitioning and ISP partitioning are modified to improve the compression efficiency. More precisely, a new L - shaped partitioning is introduced. In an example, a parent CU (or parent block) is divided into at least two partitions (i.e., two child CUs or two ISP sub - partitions), where one of the two partitions has an L - shape and the other has a square or rectangular shape depending on whether the parent CU is square or rectangular respectively. This can be in the context of the CTU recursive partitioning of a CU or in the context of intra - prediction (ISP) using sub - partitions. In an example, the L - shaped partition contains three - quarters of the samples, and the square or rectangular partition contains the remaining quarter of the samples of the parent CU. In another example, the parent CU is divided into at least two partitions where more than one partition is an L - shaped partition. In an example, the partitioning is limited to the binary case, that is, the lengths of the sides of the L - shaped partition and the other rectangular or square partition are powers of 2. In other examples, it is possible to have partitions with non - binary lengths.

[0052] Figure 8 A flowchart of an encoding method according to an embodiment is depicted.

[0053] In step S100, the current block to be encoded (also referred to as a CU or parent CU) is partitioned (also referred to as split or divided) into at least two partitions (also referred to as child CUs or more simply CUs, ISP sub - partitions or more simply sub - partitions, blocks or sub - blocks), where one of the at least two partitions is an L - shaped partition. In other words, the partitioning itself can be a CU in the context of CTU recursive partitioning or a sub - partition in the context of ISP. The current block can be a square block of size NxN or a rectangular block of size NxM, where N is different from M and N and M are positive integers. In an example, the current block is split into at least two partitions, where one of the at least two partitions is an L - shaped partition and the other is a rectangular or square partition according to the shape of the current block. In the Figure 9 example depicted on the left, partition B has a square shape because the current block to be encoded is square. In the Figure 9 other example depicted on the right, partition B has a rectangular shape because the current block to be encoded is rectangular. In a specific example, the latter partition is assumed to have at least 8 pixels so that CUs of sizes 4x8 and 8x4 can have this split. Figure 10 and Figure 11Illustrates different configurations of the L-shaped partition, the name of the L-shaped partition being defined with respect to the corner of the current block including the L-shaped partition: (a) upper left; (b) lower right; (c) lower left; and (d) upper right. In the above example, the L-shaped partition is obtained by using a semi-split in the horizontal direction and a semi-split in the vertical direction. Thus, the L-shaped partition has three-quarters of the pixels, and the other rectangular or square partition contains one-quarter of the pixels of the current block. In the case where the width and height of the current block are powers of 2, the above split is binary, i.e., the lengths of all sides of the L-shaped partition A and those side lengths of the rectangular or square partition B are powers of 2. Indeed, the L-shaped partition has six sides. If the two largest sides have lengths M and N, then two of the remaining sides have lengths equal to M / 2, and the remaining two sides have lengths equal to N / 2. In the case where the parent CU has binary length, M and N are powers of 2, and (M / 2) and (N / 2) are also powers of 2. Figure 12 Depicts a non-binary split for a square current block, where at least one side of partition A or B is not a power of 2. A similar non-binary split is possible for a rectangular current block. In another example, the current block is partitioned into more than one L-shaped partition, e.g., by recursively splitting the square or rectangular partition B, as Figure 13 depicted above. More precisely, in Figure 13 the current block is partitioned into three partitions, two of which are L-shaped partitions.

[0054] In step S102, the at least two partitions are encoded. In the example, the at least two partitions A and B are two child blocks generated by recursive partitioning of the CTU of the parent block, A is an L-shaped CU that can be encoded intra or inter-frame, and B is a square or rectangular CU or a square or rectangular block that is recursively partitioned into CUs. In another example, the at least two partitions A and B are two ISP sub-partitions of an intra-frame parent CU. In this case, the L-shaped CU is encoded intra-frame. The encoding sequence order of the sub-partitions in ISP in VVC or ECM is fixed. In the case of a horizontal split, the sub-partitions are processed from top to bottom, and in the case of a vertical split, the sub-partitions are processed from left to right. Here, a similar scheme is followed by first encoding the L-shaped sub-partition A (hereinafter also referred to as block A) and then encoding the sub-partition B (hereinafter also referred to as block B), regardless of the configuration type. In another example, the encoding series order of the sub-partitions may depend on the type of configuration, the configuration being in Figure 10 and 11is depicted above. For the upper-left configuration, the L-shaped block A is processed first and then the block B, because only block A makes both its top and left reference lines available. Once block A is processed, the decoded pixels at the top and left of block B can then be used as reference pixels for block B. For the lower-right configuration, the coding sequence order can be followed, but processing block B first will make the decoded pixels available on all the top and left sides of block A, which is advantageous. For the lower-left and upper-right configurations, it may be preferable to process block A first and then block B, because block B does not have reference samples on one side. Once block A is processed, block B can use the decoded pixels at its top or left, depending on the configuration, together with the left or top reference samples of the CU.

[0055] On the encoder side, for the current block, one configuration is selected from the set of configurations based on RD optimization. To limit the complexity, the number of configurations in the set can be restricted, for example, to 1 or 2 configurations. The (one or more) configurations selected to be in the set can be fixed. As an example, the set can include: in the case where only one configuration is allowed, only the upper-left configuration; or in the case where two configurations are allowed, the upper-left and lower-right configurations. In another example applicable to ISP, the selected configuration can depend on the intra prediction, e.g., on the intra prediction direction of the current block. By convention, the intra prediction is considered positive when the direction is from the upper-right to the lower-left or from the lower-left to the upper-right, and the intra prediction is considered negative when the direction is from the upper-left to the lower-right. In the case of this convention, if the intra prediction direction of the current block is negative, only the upper-left or lower-right configuration can be selected. Otherwise, if the intra prediction direction is positive, only the lower-left or upper-right configuration can be selected (depending on whether the prediction direction is horizontal or vertical respectively).

[0056] Thus, to encode the L-shaped CU A, the prediction residual is obtained, e.g., by subtracting the predicted L-shaped CU generated by intra or inter prediction from the original L-shaped CU A. In the case of intra prediction, the intra prediction mode is associated with the L-shaped CU and can be a directional intra prediction mode (also called angular prediction mode) or a non-directional prediction mode (also called non-angular prediction mode), e.g., DC or planar mode. In the case of inter prediction, the L-shaped CU A is predicted from samples in the decoded past or future frames. More precisely, motion estimation and compensation of the reference frames stored in the reference picture buffer are used to predict the L-shaped CU A. The prediction residual is usually but not necessarily transformed and quantized. Refer to Figure 21A and 21BAn example of a specific transformation process for an L-shaped block is disclosed. The transform coefficients in the three quadrants of the L-shaped CU are quantized, for example, using a quantization step size associated with (e.g., mapped to or corresponding to) their frequency indices. Subsequently, the quantized transform coefficients undergo an appropriate scanning method before being entropy encoded in the bitstream (also referred to as the encoded data). The encoder reconstructs the encoded L-shaped CU to provide a reference for further prediction (e.g., for CU B in intra prediction). For this purpose, the quantized transform coefficients are dequantized and inverse transformed to obtain the prediction residual. The L-shaped CU is reconstructed by combining (e.g., adding) the prediction residual and the predicted L-shaped CU. In the case where the square or rectangular partition B is a CU (i.e., in the case where it is not further recursively partitioned into multiple CUs), it can be encoded directly in a classical manner (i.e., by prediction, transformation, quantization, possibly binarization, and entropy encoding). In the case where the square or rectangular partition B is recursively split into multiple CUs, each of these CUs is encoded in the case of an L-shaped CU as disclosed above or in a classical manner in the case of a square or rectangular CU. In other examples, partition B can be encoded before CU A, in which case, in the specific case where the L-shaped CU A is intra encoded, the reconstructed samples from partition B can be used as a reference for encoding the L-shaped CU A.

[0057] Thus, to encode the L-shaped ISP sub-partition A (hereinafter also referred to as block A), a prediction residual is obtained, for example, by subtracting the predicted L-shaped block A (generated by intra prediction) from the original L-shaped block A. The same intra prediction mode (i.e., the intra prediction mode selected for the current block (i.e., the parent CU)) is used for both sub-partitions A and B. The intra prediction mode can be a directional intra prediction mode (also referred to as an angular prediction mode) or a non-directional prediction mode (also referred to as a non-angular prediction mode), such as the DC or planar mode. The prediction residual is typically but not necessarily transformed and quantized. Refer to Figure 21A and 21BAn example of the specific transformation process for the L-shaped block is disclosed. The transform coefficients in the three quadrants of the L-shaped CU are quantized, for example, using the quantization step size of their frequency indices (e.g., mapped to or corresponding to). Subsequently, the quantized coefficients undergo a suitable scanning method before being entropy-coded in the bitstream (also referred to as the encoded data). The encoder reconstructs the encoded L-shaped block to provide a reference for further prediction (e.g., for sub-partition B (also hereinafter referred to as block A)). For this purpose, the quantized transform coefficients are de-quantized and inverse-transformed to obtain the prediction residual. The L-shaped block is reconstructed by combining (e.g., adding) the prediction residual and the predicted L-shaped block. The square or rectangular sub-partition B is encoded in a classical manner. In other examples, sub-partition B can be encoded before sub-partition A, in which case the reconstructed samples from sub-partition B can be used as a reference for encoding the L-shaped sub-partition A.

[0058] Additional information (e.g., syntax elements) can be encoded. Besides the quantized transform coefficients, the information can also include the prediction mode (e.g., (one or more) intra prediction modes), the motion vector in the case of inter-frame coding, and may include partition configuration information indicating how the current block is partitioned into at least two partitions. Additionally, the information can include, for example, an indication that the L-shaped block is allowed. In an example, the syntax elements can be encoded in the slice header to indicate that all CUs in the slice can use the L-shaped split. In an example, the syntax elements can be encoded in the PPS header to indicate that all CUs in the frame can use the L-shaped split. In an example, the syntax elements can be encoded in the SPS header to indicate that all CUs in all frames can use the L-shaped split.

[0059] Directional Intra Prediction for L-shaped CUs or L-shaped Sub-Partitions Hereinafter, we consider the upper-left configuration in which the L-shaped partition A is encoded first. As previously explained, at least two partitions A and B can be two child CUs generated by the recursive partitioning of the CTU of the parent CU, or can be two ISP sub-partitions of the intra-frame parent CU.

[0060] In the case of ISP, Figure 14 the prediction process for the negative prediction direction is illustrated, and Figure 15 the prediction process for the positive prediction direction is illustrated. In both cases, using the prediction mode of the parent CU, the encoder performs the prediction of the samples of the L-shaped partition A in the usual way (i.e., using the reference samples of the parent CU located on top of it (2M + 1 samples) and to the left of it (2N + 1 samples)). Then the L-shaped partition A is encoded (e.g., by obtaining the transformed and quantized prediction residual) and reconstructed.

[0061] Once partition A is encoded and reconstructed, the encoder uses the reconstructed samples in partition A to perform prediction of the samples in partition B. The reconstructed samples located at the top and left of partition B are used as reference samples. In Figure 15 the case of the positive prediction direction, padding is performed on the lower-left and upper-right reference samples. More precisely, the upper-right reference sample is padded by copying the rightmost black pixel P, and the lower-left reference sample is padded by copying the bottommost black pixel Q. As Figure 15 depicted above, partition B is predicted from N + 1 left reference samples and M + 1 top reference samples.

[0062] Hereinafter, we consider the lower-left configuration in which the L-shaped partition A is first encoded. Figure 16 illustrates the prediction process in the case where the prediction direction is horizontally positive. In the case of the negative direction, the decoded pixels from the left L-shaped partition A can simply be used. In this case, using the prediction mode of the parent CU in the case of the ISP, the encoder performs prediction of the samples in the L-shaped partition A in the normal way (i.e., using the reference samples of the parent CU located on top of it (2M + 1 samples) and to its left (2N + 1 samples)). As in the previous configuration, the L-shaped partition A is encoded and reconstructed. Once partition A is encoded and reconstructed, the encoder thus uses the reconstructed samples in partition A to perform prediction of the samples in partition B. The top reference sample for partition B is obtained from the top reference samples of the parent CU. In one example, the decoded samples of the L-shaped partition A used to predict partition B are the samples located on the left and just below partition B. In a particular implementation, so-called top and left reference arrays are used to predict any intra block. Such arrays are defined in VVC and ECM. Thus, in this implementation, the top reference array for partition B includes the top reference samples of the parent CU (i.e., the M + 1 samples as Figure 16 depicted above). The left reference array includes the decoded samples from partition A at the boundary (shown in gray in Figure 16 ), i.e., to the left of the left edge of the partition B. If the prediction direction is positive, the remaining reference samples of the left reference array (shown in black in Figure 16 ) are obtained by projecting the decoded samples below partition B onto the left reference array, as Figure 16As shown. More precisely, for each pixel position on the lower part of the left array, the decoded sample position at the bottom in the predicted direction is determined (i.e., the decoded samples below partition B). This sample may not match the decoded samples at integer positions but may be between two decoded samples. In this case, the sample is interpolated (linear interpolation with 2 nearest neighbors or cubic interpolation with 4 nearest neighbors (higher complexity but more accurate)). This is similar to obtaining the left part of the top reference array in the negative prediction direction in regular CU prediction. The left reference array thus includes N + 1 sample values as depicted in Figure 16 When the prediction direction is negative (i.e., from top left to bottom right), the availability of the decoded samples below the partition can be used for smoothing in a manner similar to PDPC (position-dependent prediction combination) defined in VVC. PDPC modifies the original prediction using a weighted average of the original prediction and the reference samples of the target block to have a gradual intensity change at the top and left sides of the block. As in the previous configuration, once predicted, partition B is encoded and reconstructed.

[0063] The case of the upper right configuration where the L-shaped partition A is encoded first is similar to the lower left configuration where the L-shaped partition A is encoded first. More precisely, the upper right configuration in the case of the positive vertical direction is similar to the lower left configuration in the case of the horizontal square.

[0064] For the lower right configuration, considering that partition A is processed first and then partition B, the prediction processes for partition A and partition B are illustrated by Figure 17 and 18 as shown. Figure 17 illustrates the prediction process for the positive prediction direction, and Figure 18 illustrates the prediction process for the negative prediction direction. In this case, using the prediction mode of the parent CU in the case of ISP, the encoder performs the prediction of the samples of the L-shaped partition A in the usual way (i.e., using the reference samples of the parent CU located on top of it (2M + 1 samples) and on the left of it (2N + 1 samples)). As in the previous configuration, the L-shaped partition A is encoded and reconstructed. Once partition A is encoded and reconstructed, the encoder thus uses the reconstructed samples in partition A to perform the prediction of the samples of partition B. For partition B, the decoded samples on all four sides of the partition are available. If the prediction direction is positive, the decoded samples below and to the right of partition B are projected onto the left and top reference arrays, more precisely, onto the lower left and upper right parts of the arrays respectively (shown in black in Figure 17 )). The remaining reference samples for the left and top parts are taken from the reference samples of the parent CU (shown in white in Figure 17 ). The left reference array thus includes N + 1 sample values, and the top reference array includes M + 1 sample values, as shown in Figure 17depicted above. If the prediction direction is negative, such as Figure 18 as illustrated, the reference sample is obtained from the reference samples of the parent CU in the usual way. In this case, a process similar to PDPC can be applied on the right and bottom boundaries to smooth the discontinuities. More precisely, the decoded samples below and to the right of partition B can be used to smooth in a way similar to PDPC or by any other smoothing algorithm. As in the previous configuration, once predicted, partition B is encoded, following the usual process of transformation, quantization, and binary coding of the prediction residual, and the partition B is reconstructed by dequantization, inverse transformation, and then adding the decoded residual to the predicted value.

[0065] In the case of ISP regarding Figures 14 - 17 the disclosed examples can be extended to L-shaped CU A with a square or rectangular CU B in the case where CU B is intra-coded. The difference from ISP is that: the L-shaped CU can be intra- or inter-coded. In the latter case, the L-shaped CU is predicted from samples of past or future frames. Additionally, these examples will not apply if CU B is inter-coded or further partitioned.

[0066] Non-Corner Intra Prediction Modes for L-shaped CUs or L-shaped Sub-Partitions VVC and ECM include two non-corner intra-prediction modes: the PLANAR mode indexed as mode 0 and the DC mode indexed as mode 1. These two prediction modes model the slow-changing intensity regions in the frame. It is necessary to specify these two modes with L-shaped partitions so that they can be used, for example, with the L-shaped partitions in ISP or with L-shaped CUs. Below, we use the upper-left configuration to illustrate the two modes. A similar scheme can be followed in other configurations. The L-shaped partition A (i.e., the L-shaped CU or L-shaped sub-partition) is assumed to be encoded and reconstructed first.

[0067] Intra-prediction of the L-shaped partition A is performed using the reference samples of the parent CU in the usual way. If the prediction mode of the CU is DC, then the top and left reference samples are used to calculate the DC value as usual and the L-shaped partition is filled with that value. More precisely, the DC value is the sample mean of the reference samples located to the left and above the L-shaped partition A in the case where the parent CU is square. Otherwise (i.e., the parent CU is not square), the DC value is the mean of the samples on the larger side.

[0068] If the prediction mode is PLANAR, prediction is done in the usual way as the average of horizontal interpolation and vertical interpolation, where for horizontal interpolation, the upper-right decoded sample is repeated at the right edge, and for vertical interpolation, the lower-left decoded sample is repeated at the bottom edge. More precisely, in the planar mode, the predicted sample value is obtained as the weighted average of 4 reference sample values. Here, the reference samples in the same row or column as the current sample and the reference samples at the lower-left and upper-right positions with respect to the L-shaped partition are used. Interpolation is performed only on the L-shaped partition. This is shown in Figure 19 for the upper-left configuration. Horizontal and vertical interpolation are performed until the edges of the L-shaped partition. For both DC and planar modes, the subsequent smoothing step using PDPC can be done in the usual way.

[0069] Transform for L-shaped CUs or L-shaped Sub-Partitions Due to quadtree (QT), binary tree (BT), and ternary tree (TT) partitioning, VVC and ECM support rectangular CUs in addition to square CUs. Such a CU may result in square or rectangular sub-partitions if split in the ISP. When the prediction residuals of a sub-partition or CU are transform-coded, two orthogonal transforms are applied for this purpose. Figure 20 The forward transform of the prediction residuals for a rectangular block is illustrated. A right orthogonal transform T MxM is applied to each row of the residual matrix of size NxM (S1000) to obtain an intermediate data matrix. Then, a left orthogonal transform T t NxN is applied to each column of the intermediate matrix (S1002) to obtain the final transform coefficient matrix. Since the transforms specified in the standard are integer versions of the original transforms, there are scaling steps that operate after each transform operation to bring the coefficients down into the working dynamic range. The transform coefficients are quantized and then binary-coded (i.e., binarized) before lossless entropy coding using CABAC. For the decoding of the prediction residuals, the inverse process is followed. After dequantization, the transform coefficients are inverse-transformed using left and right inverse transform matrices that are the transposes of the corresponding forward transform matrices. As in the forward transform, a scaling step can be applied after each inverse transform operation.

[0070] For an L-shaped partition, the application of the left and right transforms is not obvious due to the L-shape. However, two right transforms (T (M / 2)x(M / 2) and T MxM ) and two left transforms (T t NxN and T t (N / 2)x(N / 2) ) can be used to perform the transform operations. As in VVC or ECM, the transform is assumed to be a separable orthogonal transform. Using the upper-left configuration, it can be as Figure 21A andFigure 21B Apply the transformation as shown. The same method applies to other configurations. The L-shaped block can be horizontally split into two rectangular blocks B1 and B2 of different widths (i.e., width M and M / 2 respectively). In Figure 21A the first step shown above, two right transforms are applied to the two blocks and the values are scaled. The scaling can be done using an integer transform matrix. Since two transforms are used, two scalings can be applied, i.e., one for the top row and the other for the bottom half row. More precisely, apply T MxM (S2000) on B1 and (S2002)T (M / 2)x(M / 2) . Then, rearrange the columns of the coefficients in the upper middle matrix (or the middle block of coefficients) IM1 (i.e., the largest middle matrix) (S2004) so that they correspond to the same frequency indices as the columns of the lower middle matrix IM2 (or the middle block of coefficients) (i.e., the smallest middle matrix). Thus, the middle matrix (or the middle block of coefficients) IM1' is obtained. Then, scale (S2006) the coefficients of the lower middle matrix IM2 to match the scaling of the larger right transform matrix T MxM . The scaling applies due to normalization. Two transforms of different sizes will have different normalization factors. In the current example, the ratio is 2, so the scaling will be by a factor of 2. Thus, the middle matrix (or the middle block of coefficients) IM2' is obtained, and then it is concatenated (S2008) back to the middle matrix IM1' to form an L-shaped middle matrix (or an L-shaped middle block of coefficients). In Figure 21B the second step shown above, the L-shaped coefficient matrix is vertically split into blocks B3 and B4, and two left transforms are applied to the blocks, followed by scaling. More precisely, apply T t NxN (S3000) on B3 and (S3002)T t (N / 2)x(N / 2) , where the superscript "t" denotes matrix transpose. There is no need for rearrangement of the rows of the left matrix and scaling of the right matrix at this stage, since the latter can be considered during the subsequent quantization stage. The two blocks are concatenated back (S3004) to form the final L-shaped coefficient block. In Figure 21A and Figure 21B example, two right transforms are applied first (S2000 and S2002), and then two left transforms are applied (S3000 and S3002). Also, in Figure 21A and Figure 21BAbove, the input L-shaped block is split horizontally and then vertically. However, in another example, the L-shaped block can be split vertically and then horizontally. In the latter case, the two left transforms can be applied first, and then the two right transforms can be applied. Further, the coefficient rows of the largest intermediate matrix are rearranged (S2004) so as to correspond to the same frequency indices as the rows of the smallest intermediate matrix. Thus, the transform coefficients are obtained and then follow the usual processes of quantization and binarization before lossless coding by CABAC. On the decoder side, the sequence of transforms and splits is the reverse of the sequence applied at the encoder.

[0071] For the decoding of the residuals, the transpose of the forward transform is applied to the coefficient blocks in the reverse order, while the rearrangement of the columns of the upper intermediate matrix and the scaling of the coefficients in the lower intermediate matrix are done at the intermediate stage.

[0072] The rearrangement of the columns and the scaling of the coefficients are done for better compaction of the coefficients and to avoid artifacts generated by the quantization of higher frequencies. A DCT type II transform can be applied. However, the present principle is not limited to this transform, and any other transform can be applied as long as there is a correspondence between the frequency indices in the smaller and larger transform matrices.

[0073] In another example, an inseparable transform instead of the proposed separable transform can be applied to the prediction residuals on the L-shaped block. The inseparable transform can be a set of fixed L-shaped basis vectors or can be obtained by any training method.

[0074] On the decoder side or in the decoding loop of the encoder, the inverse transform is applied to the L-shaped block of coefficients using two left transforms and two right transforms defined by the matrix that is the transpose of the corresponding forward transform matrix. As in the forward transform, a scaling step can be applied after each inverse transform operation.

[0075] Quantization and Entropy Coding of L-shaped CUs or L-shaped Sub-Partitions Once the residuals of the L-shaped block are transformed, the coefficients undergo quantization and scaling, where the scaling parameters are adjusted compared to the scaling parameters for the parent CU size. The scaling can be combined with quantization. For the upper left configuration, the missing lower right quadrant is filled with 0s and then the coefficients of the entire CU are scanned in the normal way (i.e., as in VVC). The 0 coefficients in the missing quadrant are not transmitted. Then the quantized coefficients are losslessly encoded using CABAC. The context in the CABAC coding of the coefficients can be modified since all the coefficients in the missing quadrant are set to 0. For other configurations, a similar scheme can be followed after rearranging the coefficients into the shape of the upper left configuration. Or, equivalently, the scan order can be mapped from the upper left configuration to the current L-shaped configuration so that the coefficients correspond to the same frequency indices.

[0076] More precisely, once the residual of the L-shaped block is transformed, the missing quadrant (the lower-right quadrant in the case of the upper-left configuration) is filled with 0s. The transform coefficients of the L-shaped block are first quantized by the encoder before being binary coded. Thus, in the L-shaped block, only the coefficients in the L-shape are quantized. A quantizer used in normal transform coding can be used after associating (e.g., mapping) the quantization step size to the frequency coefficient exponent. Indeed, in cases where the quantization step size depends on the frequency exponent and QP, as in HEVC, VVC, or ECM, etc., the quantization step is appropriately associated (e.g., mapped to the coefficients) with the coefficients by using quantization weights. In other words, the coefficient is quantized using the quantization weight associated (e.g., corresponding) with the (one or more) frequency exponents of the coefficient.

[0077] After quantization, the coefficients are scanned for mapping them to a 1D array. The scanning can be performed normally except that the coefficients in the lower-right quadrant are omitted. In video coding standards such as HEVC and VVC, the coefficients are scanned diagonally inside a group of 4x4 blocks called coefficient groups (CGs), and the CGs themselves are scanned diagonally inside the transform unit (TU). The same rule can be applied here. For example, Figure 22 shows the diagonal scanning pattern for a symmetric 8x8 L-shaped block. HEVC and VVC also specify horizontal and vertical scanning patterns for specific intra prediction modes. Similar scanning patterns can be applied for the transform coding of the L-shaped residual block, as Figure 23 shown. Binary coding of the coefficients based on the significance map can be done as in VVC, ECM, etc., except that the significance map is calculated only for the CGs in three quadrants of the L-shaped block.

[0078] Figure 24 Depicts a flowchart of a decoding method according to an embodiment. The various embodiments / examples disclosed above regarding the encoding method are also applicable to the decoding method.

[0079] In step S200, the encoded data is obtained. The obtained encoded data is entropy decoded (inverse binarization can also be applicable) to obtain information representing the current block to be decoded (also referred to as CU or parent CU). The information includes, for example, the quantized transform coefficients (hereinafter more simply referred to as "transform coefficients"), the prediction mode (e.g., (one or more) intra prediction modes), the motion vector in the case of inter-frame coding, and may include partition configuration information indicating how to partition the current block into at least two partitions.

[0080] In step S202, the at least two partitions (also referred to as child CUs or simply CUs, ISP sub - partitions or simply sub - partitions, blocks or sub - blocks) of the current block are reconstructed in response to the information obtained, and one of the at least two partitions is an L - shaped partition. The L - shaped partition itself can be a CU in the context of CTU recursive partitioning or a sub - partition in the context of ISP.

[0081] In an example, the at least two partitions A and B are two child blocks generated by CTU recursive partitioning of a parent block. A is an L - shaped CU that can be encoded intra - frame or inter - frame, and B is a square or rectangular CU or a square or rectangular block that is recursively partitioned into CUs. Each partition thus has its own prediction mode. To decode the L - shaped CU A, the prediction residual is obtained by de - quantizing and inverse - transforming the decoded transform coefficients of the L - shaped CU. The reconstructed image L - shaped CU is obtained by combining (e.g., adding) the prediction residual and the predicted L - shaped CU. The predicted L - shaped CU is generated by intra - frame or inter - frame prediction. The prediction on the decoder side is the same as the prediction on the encoder side. In the case of intra - frame prediction, the intra - frame prediction mode is associated with the L - shaped CU and can be a directional intra - frame prediction mode (also referred to as angular prediction mode) or a non - directional prediction mode (also referred to as non - angular prediction mode), such as DC or planar mode. The samples of the reconstructed L - shaped CU can be used as a reference for further prediction (e.g., for CU B in intra - frame prediction). In the case where the square or rectangular partition B is a CU (i.e., in the case where it is not further recursively partitioned into multiple CUs), it can be decoded directly in a classical manner (i.e., by entropy coding, possibly inverse binarization, prediction, de - quantization and inverse transformation). In the case where the square or rectangular partition B is recursively split into multiple CUs, each of these CUs is decoded as disclosed above in the case of the L - shaped CU or in a classical manner in the case of a square or rectangular CU. When decoding a square or rectangular CU in a classical manner, the same principle applies to all L - shaped CUs in the CTU. In other examples, partition B can be decoded before CU A, in which case, in the specific case where the L - shaped CU A is intra - frame encoded, the reconstructed samples of partition CU B can be used as a reference for decoding the L - shaped CU A.

[0082] In another example, the at least two partitions A and B are two ISP sub-partitions of an intra-frame parent CU. In this case, the L-shaped CU is intra-frame decoded and the same prediction mode is used for both A and B, i.e., the intra-frame prediction mode decoded for the parent CU. The prediction on the decoder side is the same as the prediction on the encoder side. To decode the L-shaped ISP sub-partition A (hereinafter also referred to as block A), the prediction residual is obtained by dequantizing and inverse-transforming the decoded transform coefficients of the L-shaped sub-partition A. The image L-shaped sub-partition is reconstructed by combining (e.g., adding) the prediction residual and the predicted L-shaped sub-partition. The same intra-frame prediction mode is used for both sub-partitions A and B, i.e., the intra-frame prediction mode decoded for the current block (i.e., the parent CU). The intra-frame prediction mode can be a directional intra-frame prediction mode (also referred to as angular prediction mode) or a non-directional prediction mode (also referred to as non-angular prediction mode), such as DC or planar mode. The samples of the reconstructed L-shaped sub-partition A can be used as a reference for further prediction (e.g., for sub-partition B). The square or rectangular sub-partition B is decoded in a classical manner. In other examples, sub-partition B can be decoded before sub-partition A, in which case the reconstructed samples from sub-partition B can be used as a reference for decoding the L-shaped sub-partition A.

[0083] Below, different examples of application scenarios are disclosed in terms of their signaling.

[0084] CTU Recursive Partitioning Using L-shaped CUs In VVC and ECM, the luminance and chrominance components can share the same coding tree, or luminance and chrominance can each have their own tree (referred to as a dual tree). In the latter case, the luminance tree can be different from the chrominance tree.

[0085] In an example, for the CU partitioning of a CTU (luminance CTU or chrominance CTU, or for both luminance and chrominance CTUs), an L-shaped partition is added to the existing quadtree (QT), binary tree (BT), and ternary tree (TT) partitions, as defined in VVC or ECM. That is, a CU is allowed to have an L-shape. In an example, to avoid redundancy, the L-shaped CU is not further split. However, the smaller square or rectangular CUs resulting from the L-shaped CU partitioning may undergo further splitting, including similar recursive L-shaped splitting.

[0086] In an example, to limit complexity, only the upper-left split configuration is allowed. Figure 25Depicts the set of all coding unit split patterns according to the example. In the case where the upper left L-shaped partition is added to the QT, BT, and TT partitions, an example of signaling can be as follows. Signal the first bit to indicate whether the current block is split. If the first bit is 1, i.e., the current block is indicated as split, then signal the second bit to indicate whether QT applies. If the second bit is 0 (QT does not apply), then signal the next bit to indicate whether L_SPLIT (i.e., the L-shaped partition) applies. If not (i.e., L_SPLIT does not apply), then signal the next two bits to indicate whether BT_VER, TT_VER, BT_HOR, or TT_HOR applies. Another example can be as follows. Signal the first bit to indicate whether the current block is split. If the first bit is 1, i.e., the current block is split, then signal the next bit b0 to indicate whether at least one of QT or L_SPLIT applies or neither of them applies. If b0 is 1 (i.e., at least one of QT or L_SPLIT applies), then signal the next bit b1 to indicate whether QT or L_SPLIT applies (e.g., b1 is set to 1 to indicate QT, and b1 is set to 0 to indicate L_SPLIT, or vice versa). Otherwise, i.e., if b0 is 0 (i.e., neither QT nor L_SPLIT applies), then signal the next two bits to indicate whether BT_VER, TT_VER, BT_HOR, or TT_HOR applies.

[0087] In another example, as Figure 10 and Figure 11 depicted above, multiple split configurations (e.g., 2, 3, or 4) are allowed. In the case where all four L-shaped partitions are added to the QT, BT, and TT partitions, an example of signaling can be as follows. Signal the first bit to indicate whether the current block is split. If the first bit is 1, i.e., the current block is indicated as split, then signal the second bit to indicate whether QT applies. If not (QT does not apply), then signal the next bit b0 to indicate whether the L-shaped partition applies. If b0 is 1 (i.e., the L-shaped partition applies), then signal the next two bits to indicate which configuration among upper left, upper right, lower left, or lower right applies. If b0 is 0 (i.e., the L-shaped partition does not apply), then signal the next two bits to indicate whether BT_VER, TT_VER, BT_HOR, or TT_HOR applies.

[0088] Apply a transform to the prediction residual generated by intra or inter prediction. The transform coefficients in three quadrants are quantized using a quantization step size associated with (e.g., mapped to) their frequency indices. Subsequently, the quantized coefficients undergo a suitable scanning method before being binary coded. In an example, to facilitate the scanning of coefficients based on groups of coefficients of size 4x4, as done in HEVC, VVC, ECM, etc., assume the minimum size of a CU supporting L-shaped splitting is 8x8.

[0089] The same principle can be applied to chrominance CUs.

[0090] ISP Partitioning Using L-shaped Sub-Partitions In an example, add an L-shaped partition in intra prediction using sub-partitions (ISP) for luminance CUs. In VVC or in ECM, a CU with intra prediction can be split into two or four vertical or horizontal partitions, where the partitions are processed sequentially for prediction and for encoding and decoding of the resulting prediction residual. The L-shaped partition allows splitting the CU into a sub-partition with an L-shape and another sub-partition with a square or rectangular shape. In an example, as Figure 10 and Figure 11 depicted above allows multiple splitting configurations (e.g., 2, 3, or 4). In another example, to limit complexity, only one split is allowed; that is, the smaller square or rectangular partitions are not further split. In an example, in addition to allowing the existing horizontal and vertical splits, only one split configuration (the upper left partition has an L-shape) is allowed. Apply a transform to the prediction residual in the L-shaped partition. The transform coefficients in three quadrants are quantized using a quantization step size associated with (e.g., mapped to) their frequency indices. Subsequently, the quantized coefficients undergo a suitable scanning method before being binary coded. In an example, to facilitate the scanning of coefficients based on groups of coefficients of size 4x4, as done in HEVC, VVC, ECM, etc., assume the minimum size of the parent CU supporting ISP with L-shaped splitting is 8x8. Decode the pixels in the L-shaped partition after adding the predicted value to the prediction residual, which is obtained after applying the inverse transform to the decoded prediction residual coefficients. The decoded pixels are then used as reference samples for intra prediction in the smaller square or rectangular partitions.

[0091] In the following example, detail the signaling of the split types in ISP.

[0092] In a first example, intra prediction using an ISP is extended in the case of including an L-shaped partition, as in VVC or ECM. Only the top-left partition configuration is allowed. The encoder examines the RD performance for all split types that may include no split and signals the best split with a binary coding scheme. The decoder decodes the split type. The signaling of the split type in the ISP is changed. For example, the signaling can be done as "0" for NO_SPLIT, "10" for L_SPLIT, "110" for HOR_SPLIT, and "111" for VER_SPLIT, where L_SPLIT indicates an L-shaped partition. Intra prediction for the L-shaped sub-partition is done using the reference samples of the parent CU. Then, the intra prediction for the smaller sub-partition is done using the decoded samples in the top and left L-shaped sub-partitions as reference samples. In the example, it is assumed that the minimum size of the smaller sub-partition is 8 pixels.

[0093] In a second example, intra prediction exploiting the ISP is extended in the case of including L-shaped partitions, as in VVC or ECM. The number of allowed L-shaped configurations can be 1, 2, 3, or 4. When the number of configurations is 1, only the top-left configuration is allowed. When the number of configurations is 2, the top-left configuration is allowed together with any one of the other three types of configurations. When the number of configurations is 4, all four L-shaped configuration types are allowed. The encoder examines the RD performance for all split types that may include no split, and signals the best split with a suitable binary coding scheme. The decoder decodes the split type. Depending on the number of added L-shaped configurations, the signaling of the split type in the ISP is changed. For example, when only one L-shaped split is allowed, the signaling can be done as “0” for NO_SPLIT, “10” for L_SPLIT, “110” for HOR_SPLIT, and “111” for VER_SPLIT, where L_SPLIT denotes an L-shaped partition. Similarly, when all four L-shaped splits are allowed, the signaling can be done as “0” for NO_SPLIT, “1000” for L_SPLIT_TOP_LEFT, “1001” for L_SPLIT_BOTTOM_RIGHT, “1010” for L_SPLIT_TOP_RIGHT, “1011” for L_SPLIT_BOTTOM_LEFT, “110” for HOR_SPLIT, and “111” for VER_SPLIT, where L_SPLIT_X denotes the type of the L-shaped split, etc. Intra prediction for the L-shaped sub-partitions is done using the reference samples of the parent CU. Then, depending on the split type, intra prediction for the smaller sub-partitions is done using the decoded samples in the L-shaped sub-partitions and the reference samples of the parent CU. In the example, it is assumed that the minimum size of the smaller sub-partitions is 8 pixels.

[0094] In a third example, the intra prediction using ISP is modified, as in VVC or ECM, to replace the existing horizontal and vertical splits by L-shaped splits. The number of allowed L-shaped configurations can be 1, 2, or 4. When the number of configurations is 1, only the top-left configuration is allowed. When the number of configurations is 2, the top-left configuration is allowed together with any one of the other three types of configurations. When the number of configurations is 4, all four L-shaped configuration types are allowed. The encoder examines the RD performance for all split types that may include no split, and signals the best split with a suitable binary coding scheme. The decoder decodes the split type. Depending on the number of added L-shaped configurations, the signaling of the split types in ISP is changed. For example, when only one L-shaped split is allowed, the signaling can be done as "0" for NO_SPLIT and "1" for L_SPLIT, where L_SPLIT denotes the L-shaped split. Similarly, when all four L-shaped splits are allowed, the signaling can be done as "0" for NO_SPLIT, "100" for L_SPLIT_TOP_LEFT, "101" for L_SPLIT_BOTTOM_RIGHT, "110" for L_SPLIT_TOP_RIGHT, "111" for L_SPLIT_BOTTOM_LEFT, where L_SPLIT_X denotes the type of the L-shaped split, etc. The intra prediction for the L-shaped sub-partitions is done using the reference samples of the parent CU. Then, depending on the split type, the intra prediction for the smaller sub-partitions is done using the decoded samples in the L-shaped sub-partitions and the reference samples of the parent CU. Assume the minimum size of the smaller sub-partitions is 8 pixels.

[0095] In a fourth example, the intra prediction using ISP is extended in the case of including L-shaped partitions, as in VVC or ECM. The number of allowed L-shaped partitions is 2. The first partition has one L-shaped sub-partition and one square or rectangular sub-partition. The second partition has two L-shaped sub-partitions and one square or rectangular sub-partition. The second L-shaped sub-partition is obtained by splitting the square or rectangular sub-partition again. Both of the two L-shaped sub-partitions can only have the top-left configuration. These two new partitions can replace the existing horizontal and vertical splits in ISP, or in addition to them, they can also be included.

[0096] Accordingly, the signaling scheme is determined. When there are two L-shaped sub-partitions, the intra prediction for the first sub-partition is done using the reference samples of the parent CU. Then, the intra prediction for the second sub-partition is done using the decoded samples in the first L-shaped sub-partition on the left and at the top as reference samples. Then, finally, the intra prediction for the smaller sub-partitions is done using the decoded samples in the second L-shaped sub-partition on the left and at the top as reference samples.

[0097] The present aspect is not limited to ECM, VVC or HEVC, but can be applied, for example, to other standards and recommendations and extensions of any such standards and recommendations. Unless otherwise indicated or technically excluded, the aspects described in the present application can be used individually or in combination.

[0098] Various numerical values are used in the present application. The specific values are for illustrative purposes, and the described aspects are not limited to these specific values.

[0099] Various implementations involve decoding. As used in the present application, "decoding" can cover, for example, all or part of the process performed on the received encoded sequence to produce a final output suitable for display. In various embodiments, such a process includes one or more of the processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In various embodiments, such a process also or alternatively includes processes performed by the decoders of the various implementations described in the present application, for example, decoding resampling filter coefficients, resampling the decoded picture.

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

[0101] Various implementations involve encoding. In a manner similar to the above discussion regarding "decoding", "encoding" as used in the present application can cover, for example, all or part of the process performed on an input video sequence to produce an encoded bitstream. In various embodiments, such a process includes one or more of the processes typically performed by an encoder, such as partitioning, differential encoding, transform, quantization, and entropy encoding. In various embodiments, such a process also or alternatively includes processes performed by the encoders of the various implementations described in the present application, for example, determining resampling filter coefficients, resampling the decoded picture.

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

[0103] The present disclosure has described various segments of information, such as syntax, which can be transmitted or stored, for example. This information can be packaged or arranged in various ways, including, for example, ways common in video standards, such as placing the information in an SPS (Sequence Parameter Set), PPS (Picture Parameter Set), NAL unit (Network Abstraction Layer), header (e.g., NAL unit header or slice header), or SEI message. Other ways are also available, including, for example, ways common for system-level or application-level standards, such as placing the information in one or more of the following: a. SDP (Session Description Protocol), a format for describing a multimedia communication session for the purposes of session announcement and session invitation, for example, as described in the RFCs and used in conjunction with RTP (Real-Time Transport Protocol) transmission. b. DASH MPD (Dynamic Adaptive Streaming over HTTP) descriptor, for example, as used in DASH and transmitted over HTTP, the descriptor being associated with a representation or a collection of representations to provide additional characteristics to the content representation. c. RTP header extension, for example, as used during RTP streaming. d. ISO base media file format, for example, as used in OMAF and using boxes which are object-oriented building blocks defined by unique type identifiers and lengths and which are referred to as "atoms" in some specifications. e. HLS (HTTP Live Streaming) manifest transmitted over HTTP. The manifest can be associated, for example, with a version or a collection of versions of the content to provide characteristics of the version or collection of versions.

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

[0105] Some embodiments refer to rate - distortion optimization. In particular, during the encoding process, a balance or trade - off between rate and distortion is typically considered, often in view of constraints on computational complexity. Rate - distortion optimization is typically formulated as minimizing a rate - distortion function, which is a weighted sum of rate and distortion. There are different solutions to the rate - distortion optimization problem. For example, a solution can be based on an extensive testing of all encoding options, including all considered modes or values of encoding parameters, with a complete evaluation of their encoding cost and associated distortion for the reconstructed signal after encoding and decoding. Faster solutions can also be used to save encoding complexity, especially regarding the calculation of approximate distortion based on predicted or prediction - residual signals rather than the reconstructed signal. A hybrid of these two solutions can also be used, such as by using approximate distortion for only some of the possible encoding options and complete distortion for other encoding options. Other solutions only evaluate a subset of the possible encoding options. More generally, many solutions employ any of a variety of techniques to perform the optimization, but the optimization does not necessarily involve a complete evaluation of both encoding cost and associated distortion.

[0106] The implementations and aspects described herein can be implemented in, for example, a method or process, an apparatus, a software program, a data stream, or a signal. Even if discussed only in the context of a single form of implementation (e.g., only discussed as a method), the implementation of the features being discussed can be implemented in other forms (e.g., an apparatus or a program). An apparatus can be implemented, for example, with appropriate hardware, software, and firmware. A method can be implemented, for example, in a processor, which generally refers to a processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. A processor also includes a communication device, such as, for example, a computer, a cellular phone, a portable / personal digital assistant (“PDA”), and other devices that facilitate the communication of information between end - users.

[0107] References to “an embodiment” or “one embodiment” or “an implementation” or “one implementation” and other variations thereof mean that the particular features, structures, characteristics, etc. described in connection with the embodiment are included in at least one embodiment. Thus, the appearances of the phrases “in an embodiment” or “in one embodiment” or “in an implementation” or “in one implementation” and any variations thereof that occur throughout this application do not necessarily all refer to the same embodiment.

[0108] Additionally, this application may refer to “determining” various pieces of information. Determining information can include, for example, one or more of the following: estimating information, calculating information, predicting information, or retrieving information from a memory.

[0109] Further, the present application may refer to "accessing" each piece of information. Accessing information may include, for example, one or more of the following: receiving information, retrieving information (e.g., from a memory), storing information, moving information, copying information, computing information, determining information, predicting information, or estimating information.

[0110] Additionally, the present application may refer to "receiving" each piece of information. As with "accessing", receiving is intended to be a broad term. Receiving information may include, for example, one or more of the following: accessing information or retrieving information (e.g., from a memory). Further, "receiving" typically involves, in one way or another, an operation such as, for example, storing information, processing information, transmitting information, moving information, copying information, erasing information, computing information, determining information, predicting information, or estimating information.

[0111] It should be appreciated that the use of any of the following, " / ", "and / or", and "at least one of... " (e.g., in the case of "A / B", "A and / or B", and "at least one of A and B") is intended to cover the selection of only the first-listed option (A), or only the second-listed option (B), or the selection of both options (A and B). As a further example, in the case of "A, B, and / or C" and "at least one of A, B, and C", such phrases are intended to cover the selection of only the first-listed option (A), or only the second-listed option (B), or only the third-listed option (C), or the selection of only the first and second-listed options (A and B), or the selection of only the first and third-listed options (A and C), or the selection of only the second and third-listed options (B and C), or the selection of all three options (A and B and C). This may be extended for as many items as are listed, as will be clear to those skilled in the art and the relevant arts.

[0112] Moreover, as used herein, among other things, the term "signal" refers to indicating something to a corresponding decoder. For example, in some embodiments, the encoder signals a particular one of a plurality of resampling filter coefficients. In this way, in an embodiment, the same parameters are used at both the encoder side and the decoder side. Thus, for example, the encoder can transmit (explicitly signal) a particular parameter to the decoder so that the decoder can use the same particular parameter. Conversely, if the decoder already has a particular parameter and other parameters, then signaling (implicit signaling) can be used without transmission to simply allow the decoder to know and select the particular parameter. By avoiding the transmission of any actual functionality, bit savings are achieved in various embodiments. It should be appreciated that signaling can be accomplished in a variety of ways. For example, in various embodiments, one or more syntax elements, flags, etc. are used to signal information to a corresponding decoder. Although the signing content refers to the verb form of the term "signal", the term "signal" can also be used as a noun herein.

[0113] As will be apparent to those skilled in the art, implementations can generate a variety of signals that are formatted to carry information that can be, for example, stored or transmitted. The information can 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 embodiments. Such a signal can be formatted as, for example, an electromagnetic wave (e.g., using the radio frequency portion of the spectrum) or a baseband signal. Formatting can include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information carried by the signal can be, for example, analog or digital information. The signal can be transmitted over a variety of different wired or wireless links, as is well known. The signal can be stored on a processor-readable medium.

[0114] Multiple embodiments have been described above. The features of these embodiments can be provided individually or in any combination, across various claim categories and types.

[0115] In an example, an encoding method includes: Partitioning a current block to be encoded into at least two partitions, wherein one of the at least two partitions is an L-shaped partition; and Encoding the at least two partitions.

[0116] In an example, a decoding method includes: Obtaining encoded data for a current block to be decoded; and Decoding at least two partitions of the current block according to the encoded data, wherein one of the at least two partitions is an L-shaped partition.

[0117] In an example, the at least two partitions are intra prediction sub - partitions, and each intra prediction sub - partition is predicted using an intra prediction mode associated with the current block.

[0118] In an example, an encoding method (or a decoding method) includes: for the current block, encoding (or decoding) at least one syntax element that identifies an L - shaped partition pattern in a set of partition patterns including at least the following: the L - shaped partition pattern and a pattern indicating that the block is not partitioned.

[0119] In an example, the set of partition patterns further includes a horizontal partition pattern and a vertical partition pattern.

[0120] In an example, the L - shaped partition is a coding unit.

[0121] In an example, an encoding method (or a decoding method) includes: for the current block, encoding (or decoding) at least one syntax element that identifies an L - shaped partition pattern in a set of partition patterns including at least the following: a pattern indicating that the block is not partitioned, the L - shaped partition pattern, a quadtree partition pattern, a binary tree partition pattern, and a ternary tree partition pattern.

[0122] In an example, the prediction of the L - shaped partition is performed only on the L - shaped partition.

[0123] In an example, an encoding method (or a decoding method) includes: encoding (or decoding) at least one syntax element that indicates a configuration for the L - shaped partition among upper - left, upper - right, lower - left, and lower - right configurations.

[0124] In an example, the current block to be encoded (or decoded) is partitioned into three partitions, where two of the three partitions are L - shaped partitions.

[0125] In an example, encoding the L - shaped partition includes: transforming a prediction residual into transform coefficients, where transforming the prediction residual into transform coefficients includes: In a horizontal direction, splitting the L - shaped partition into a first rectangular block and a second rectangular block, where the first rectangular block is larger than the second rectangular block; Applying a first right transform on the first rectangular block to obtain a first intermediate block of transform coefficients, and applying a second right transform on the second rectangular block to obtain a second intermediate block of transform coefficients, where the first and second intermediate blocks of transform coefficients form an L - shaped block of transform coefficients; In a vertical direction, splitting the L - shaped block of transform coefficients into two rectangular blocks; and Applying a left transform on each of the two rectangular blocks to obtain an L - shaped block of transform coefficients.

[0126] In an example, after applying a first right transformation on the first and second rectangular blocks: rearrange the columns of the transform coefficients in the first intermediate block so as to correspond to the same frequency indices as the columns of the second intermediate block; and scale the transform coefficients in the second intermediate block.

[0127] In this case, on the decoder side, the sequence of transformation and splitting is the reverse of the sequence applied at the decoder, and thus, decoding the L-shaped partition includes: inverse-transforming the L-shaped block of transform coefficients into a prediction residual, where inverse-transforming the L-shaped block of transform coefficients into a prediction residual includes: in the vertical direction, split the L-shaped block of transform coefficients into a first rectangular block and a second rectangular block, the first rectangular block being larger than the second rectangular block; apply a first left inverse transformation on the first rectangular block to obtain a first intermediate block of transform coefficients, and apply a second left inverse transformation on the second rectangular block to obtain a second intermediate block of transform coefficients, the first and second intermediate blocks of transform coefficients forming a new L-shaped block of transform coefficients; in the horizontal direction, split the new L-shaped block of transform coefficients into two rectangular blocks of transform coefficients; and apply a right inverse transformation on each of the two rectangular blocks to obtain an L-shaped block of prediction residuals.

[0128] In an example, after applying a first left inverse transformation on the first and second rectangular blocks, the decoding method includes: rearranging the columns of the transform coefficients in the first intermediate block in ascending order of frequency coefficient indices; and scaling the transform coefficients in the second intermediate block.

[0129] In another example, encoding the L-shaped partition includes: transforming the prediction residual into transform coefficients, where transforming the prediction residual into transform coefficients includes: in the vertical direction, split the L-shaped partition into a first rectangular block and a second rectangular block, the first rectangular block being larger than the second rectangular block; apply a first left transformation on the first rectangular block to obtain a first intermediate block of transform coefficients, and apply a second left transformation on the second rectangular block to obtain a second intermediate block of transform coefficients, the first and second intermediate blocks of transform coefficients forming an L-shaped block of transform coefficients; in the horizontal direction, split the L-shaped block of transform coefficients into two rectangular blocks; and apply a right transformation on each of the two rectangular blocks to obtain an L-shaped block of transform coefficients.

[0130] In an example, after applying a first left transformation on the first and second rectangular blocks, the method includes: Rearrange the rows of the transform coefficients in the first intermediate block so as to correspond to the same frequency index as the frequency index of the columns or rows of the second intermediate block; and Scale the transform coefficients in the second intermediate block.

[0131] In this case, on the decoder side, decoding the L-shaped partition includes: inverse-transforming the L-shaped block of transform coefficients into a prediction residual, where inverse-transforming the L-shaped block of transform coefficients into a prediction residual includes: In the horizontal direction, split the L-shaped block of transform coefficients into a first rectangular block and a second rectangular block, the first rectangular block being larger than the second rectangular block; Apply a first right inverse transform to the first rectangular block to obtain a first intermediate block of transform coefficients, and apply a second right inverse transform to the second rectangular block to obtain a second intermediate block of transform coefficients, the first and second intermediate blocks of transform coefficients forming a new L-shaped block of transform coefficients; In the vertical direction, split the new L-shaped block of transform coefficients into two rectangular blocks of transform coefficients; and Apply a left inverse transform to each of the two rectangular blocks to obtain an L-shaped block of prediction residuals.

[0132] In an example, after applying the first right inverse transform to the first and second rectangular blocks, the decoding method includes: rearranging the rows of the transform coefficients in the first intermediate block in ascending order of frequency coefficient index; and Scaling the transform coefficients in the second intermediate block.

[0133] In an example, in the case of the lower left configuration of the L-shaped partition in which the L-shaped partition is first encoded (or decoded), perform intra prediction on the other partition according to the positive prediction direction, from the top reference sample of the current block, from the reconstructed samples of the L-shaped partition to the left of the left edge of the other partition among the at least two partitions, and from the reconstructed samples of the L-shaped partition below the bottom edge of the other partition after being projected onto the lower left reference sample.

[0134] In an example, in the case of the lower right configuration of the L-shaped partition in which the L-shaped partition is first encoded (or decoded), perform intra prediction on the other partition according to the positive prediction direction, from the top and left reference samples of the current block, from the reconstructed samples of the L-shaped partition to the right of the right edge of the other partition among the at least two partitions after being projected onto the upper right reference sample, and from the reconstructed samples of the L-shaped partition below the bottom edge of the other partition after being projected onto the lower left reference sample.

Claims

1. A coding method, comprising: Partitioning a current block to be coded into at least two partitions, wherein one of the at least two partitions is an L-shaped partition; And Coding the at least two partitions.

2. The method according to claim 1, wherein the at least two partitions are intra prediction sub-partitions, and each intra prediction sub-partition is predicted using an intra prediction mode associated with the current block.

3. The method according to claim 2, comprising: For the current block, coding at least one syntax element that identifies an L-shaped partition pattern in a set of partition patterns including at least the following: the L-shaped partition pattern and a pattern indicating that the block is not partitioned.

4. The method according to claim 3, wherein the set of partition patterns further includes a horizontal partition pattern and a vertical partition pattern.

5. The method according to claim 1, wherein the L-shaped partition is a coding unit.

6. The method according to claim 5, comprising: For the current block, coding at least one syntax element that identifies an L-shaped partition pattern in a set of partition patterns including at least the following: a pattern indicating that the block is not partitioned, the L-shaped partition pattern, a quadtree partition pattern, a binary tree partition pattern, and a ternary tree partition pattern.

7. The method according to any one of claims 1 to 6, wherein the prediction of the L-shaped partition is performed only on the L-shaped partition.

8. The method according to any one of claims 1 to 7, comprising: Coding at least one syntax element that indicates the configuration of the L-shaped partition among the upper left, upper right, lower left, and lower right configurations.

9. The method according to any one of claims 1 to 8, wherein the current block to be coded is partitioned into three partitions, and two of the three partitions are L-shaped partitions.

10. The method according to any one of claims 1 to 9, wherein encoding the L-shaped partition includes: Transforming a prediction residual into transform coefficients, wherein transforming the prediction residual into transform coefficients includes: In the horizontal direction, splitting the L-shaped partition into a first rectangular block and a second rectangular block, the first rectangular block being larger than the second rectangular block; Applying a first right transform to the first rectangular block to obtain a first intermediate block of transform coefficients, and applying a second right transform to the second rectangular block to obtain a second intermediate block of transform coefficients, the first and second intermediate blocks of transform coefficients forming an L-shaped block of transform coefficients; In the vertical direction, splitting the L-shaped block of transform coefficients into two rectangular blocks; and Applying a left transform to each of the two rectangular blocks to obtain an L-shaped block of transform coefficients.

11. The method according to claim 10, including after applying the first right transform to the first and second rectangular blocks: Rearranging the columns of the transform coefficients in the first intermediate block so as to correspond to frequency indices identical to those of the columns of the second intermediate block; and Scaling the transform coefficients in the second intermediate block.

12. The method according to any one of claims 1 to 11, wherein in the case of the lower left configuration of the L-shaped partition where the L-shaped partition is first encoded, for intra prediction of the other partition, according to the positive prediction direction, from the top reference sample of the current block, from the reconstructed samples of the L-shaped partition to the left of the left edge of the other partition among the at least two partitions, and from the reconstructed samples of the L-shaped partition below the bottom edge of the other partition after being projected onto the lower left reference sample.

13. The method according to any one of claims 1 to 11, wherein in the case of the lower right configuration of the L-shaped partition where the L-shaped partition is first encoded, for intra prediction of the other partition, according to the positive prediction direction, from the top and left reference samples of the current block, from the reconstructed samples of the L-shaped partition to the right of the right edge of the other partition among the at least two partitions after being projected onto the upper right reference sample, and from the reconstructed samples of the L-shaped partition below the bottom edge of the other partition after being projected onto the lower left reference sample.

14. A decoding method, comprising: obtaining the encoded data for the current block to be decoded; and decoding at least two partitions of the current block according to the encoded data, wherein one of the at least two partitions is an L-shaped partition.

15. The method according to claim 14, wherein the at least two partitions are intra prediction sub-partitions, and each intra prediction sub-partition is predicted using an intra prediction mode associated with the current block.

16. The method according to claim 15, comprising: For the current block, decoding at least one syntax element that identifies the L-shaped partition pattern in a partition pattern set including at least the following: the L-shaped partition pattern and the pattern indicating that the block is not partitioned.

17. The method according to claim 16, wherein the partition pattern set further includes a horizontal partition pattern and a vertical partition pattern.

18. The method according to claim 14, wherein the L-shaped partition is a coding unit.

19. The method according to claim 18, comprising: For the current block, decoding at least one syntax element that identifies the L-shaped partition pattern in a partition pattern set including at least the following: the pattern indicating that the block is not partitioned, the L-shaped partition pattern, the quadtree partition pattern, the binary tree partition pattern, and the ternary tree partition pattern.

20. The method according to any one of claims 14 to 19, wherein the prediction of the L-shaped partition is performed only on the L-shaped partition.

21. The method according to any one of claims 14 to 20, comprising: Decoding at least one syntax element that indicates the configuration of the L-shaped partition among the upper left, upper right, lower left, and lower right configurations.

22. The method according to any one of claims 14 to 21, wherein the current block to be decoded is partitioned into three partitions, and two of the three partitions are L-shaped partitions.

23. The method according to any one of claims 14 to 22, wherein decoding the L-shaped partition includes: Inverse-transforming the L-shaped block of transform coefficients into a prediction residual, wherein inverse-transforming the L-shaped block of transform coefficients into a prediction residual includes: in the vertical direction, splitting the L-shaped block of transform coefficients into a first rectangular block and a second rectangular block, the first rectangular block being larger than the second rectangular block; Apply a first left inverse transform on the first rectangular block to obtain a first intermediate block of transform coefficients, and apply a second left inverse transform on the second rectangular block to obtain a second intermediate block of transform coefficients, the first and second intermediate blocks of transform coefficients forming a new L-shaped block of transform coefficients; In the horizontal direction, split the new L-shaped block of transform coefficients into two rectangular blocks of transform coefficients; and Apply a right inverse transform on each of the two rectangular blocks to obtain an L-shaped block of prediction residuals.

24. The method according to claim 23, including, after applying the first left inverse transform on the first and second rectangular blocks: rearranging the columns of the transform coefficients in the first intermediate block in ascending order of the frequency coefficient exponents; and Scaling the transform coefficients in the second intermediate block.

25. The method according to any one of claims 14 to 24, wherein in the case of the lower left configuration of the L-shaped partition where the L-shaped partition is first decoded, according to the positive prediction direction, from the top reference sample of the current block, from the reconstructed samples of the L-shaped partition located to the left of the left edge of the other partition among the at least two partitions, and from the reconstructed samples of the L-shaped partition located below the bottom edge of the other partition after being projected onto the lower left reference sample, perform intra prediction on the other partition.

26. The method according to any one of claims 14 to 24, wherein in the case of the lower right configuration of the L-shaped partition where the L-shaped partition is first decoded, according to the positive prediction direction, from the top and left reference samples of the current block, from the reconstructed samples of the L-shaped partition located to the right of the right edge of the other partition among the at least two partitions after being projected onto the upper right reference sample, and from the reconstructed samples of the L-shaped partition located below the bottom edge of the other partition after being projected onto the lower left reference sample, perform intra prediction on the other partition.

27. An encoding apparatus, comprising one or more processors and at least one memory coupled to the one or more processors, wherein the one or more processors are configured to perform the method according to any one of claims 1-13.

28. A decoding apparatus, comprising one or more processors and at least one memory coupled to the one or more processors, wherein the one or more processors are configured to perform the method according to any one of claims 14-26.

29. A computer program comprising program code instructions for implementing the method according to any one of claims 1-26 when executed by a processor.

30. A computer-readable storage medium having instructions stored thereon for implementing the method according to any one of claims 1-26.