Method and apparatus for picture coding and decoding

文档序号:621653 发布日期:2021-05-07 浏览:23次 中文

阅读说明:本技术 用于画面编码和解码的方法和设备 (Method and apparatus for picture coding and decoding ) 是由 Y.陈 T.波伊里尔 P.博德斯 F.莱林内克 F.加尔平 于 2019-09-19 设计创作,主要内容包括:提出一种解码方法。首先确定用于画面的当前块的照度补偿参数。仅在至少一个空间邻域块与当前块属于被称为当前局部照度补偿组的相同局部照度补偿组的情况下,从所述至少一个空间邻域块的一个或多个重构样本或从一个或多个照度补偿参数来确定照度补偿参数。最后,使用确定的照度补偿参数重构当前块。(A decoding method is provided. Illumination compensation parameters for a current block of a picture are first determined. The illumination compensation parameter is determined from one or more reconstructed samples of the at least one spatial neighborhood block or from one or more illumination compensation parameters only if the at least one spatial neighborhood block belongs to the same local illumination compensation group, referred to as the current local illumination compensation group, as the current local illumination compensation group. Finally, the current block is reconstructed using the determined illumination compensation parameters.)

1. A decoding method, comprising:

-determining at least one illumination compensation parameter for the current block;

-reconstructing the current block using the determined illumination compensation parameters;

wherein the at least one illumination compensation parameter for the current block is determined from one or more reconstructed samples of the at least one spatial neighborhood block or from one or more illumination compensation parameters only if the at least one spatial neighborhood block and the current block belong to the same local illumination compensation group, referred to as the current local illumination compensation group, a local illumination group being a group of blocks, wherein the local illumination compensation parameters can only be inherited or calculated from the blocks in said group of blocks.

2. The decoding method of claim 1, wherein the set of local illumination compensations is smaller, larger or equal to a coding tree unit.

3. The decoding method according to any one of claims 1 or 2, further comprising: in case that the current block is not located at an upper left position in the same local illumination compensation group, a flag indicating whether the determined illumination compensation parameter is used to reconstruct the current block is decoded.

4. The decoding method of any of claims 1 to 3, further comprising: in case of encoding at least one block located at an upper side or a left side of the current block in an inter mode, decoding a flag indicating whether the determined illumination compensation parameter is used to reconstruct the current block.

5. The method of any of claims 1 to 4, further comprising: a flag indicating whether at least one block of a current local illumination compensation group uses illumination compensation for prediction is decoded.

6. The method of any of claims 1 to 5, further comprising: a flag indicating whether or not illumination compensation parameters are to be calculated and stored after reconstructing a block of a current local illumination compensation group is decoded.

7. The method of any of claims 1 to 6, further comprising: decoding a flag indicating whether at least one block of a current local illumination compensation group has a value of another flag being true if the another flag is explicitly encoded, wherein the another flag indicates whether the determined illumination compensation parameters are used for reconstructing the current block.

8. The method according to any of claims 1 to 7, wherein the flag is decoded using the first block of the current local illumination compensation group.

9. The method according to any of claims 1 to 8, wherein the flag is decoded using the first block of the current local illumination compensation group that is not coded in merge mode.

10. The method of any of claims 1 to 9, further comprising: a flag is decoded for a current local illumination group, the flag indicating whether at least one block of the group having a size smaller than a value uses illumination compensation for calculating the prediction.

11. The method of any of claims 1 to 9, further comprising: a flag is decoded for a current local illumination group, the flag indicating whether at least one block of the group having a size greater than a value uses illumination compensation for calculating a prediction.

12. Method according to any one of claims 1 to 11, wherein at least one illumination compensation parameter for the current block is determined from or from one or more reconstructed samples of at least one spatial neighborhood block belonging to the current local illumination compensation group and having the same reference index as the current block.

13. The method of any one of claims 1 to 12, wherein the at least one illumination compensation parameter for the current block is determined as an average of illumination compensation parameters of two spatial neighborhood blocks belonging to the current local illumination compensation group and having the same reference index as the current block.

14. Method according to claim 1 or 2, wherein at least one illumination compensation parameter for the current block is determined from one or more reconstructed samples of at least one spatial neighborhood block belonging to the current local illumination compensation group and having the same reference index as the current block.

15. A decoding apparatus, comprising: one or more processors configured to perform:

-determining at least one illumination compensation parameter for the current block;

-reconstructing the current block using the determined illumination compensation parameters;

wherein the at least one illumination compensation parameter for the current block is determined from one or more reconstructed samples of the at least one spatial neighborhood block or from one or more illumination compensation parameters only if the at least one spatial neighborhood block and the current block belong to the same local illumination compensation group, referred to as the current local illumination compensation group, a local illumination group being a group of blocks, wherein the local illumination compensation parameters can only be inherited or calculated from the blocks in said group of blocks.

16. An encoding method, comprising:

-determining at least one illumination compensation parameter for the current block;

-reconstructing the current block using the determined illumination compensation parameters;

wherein the at least one illumination compensation parameter for the current block is determined from one or more reconstructed samples of the at least one spatial neighborhood block or from one or more illumination compensation parameters only if the at least one spatial neighborhood block and the current block belong to the same local illumination compensation group, referred to as the current local illumination compensation group, a local illumination group being a group of blocks, wherein the local illumination compensation parameters can only be inherited or calculated from the blocks in said group of blocks.

17. An encoding apparatus comprising: one or more processors configured to perform:

-determining at least one illumination compensation parameter for the current block;

-encoding the current block using the determined illumination compensation parameters;

wherein the at least one illumination compensation parameter for the current block is determined from one or more reconstructed samples of the at least one spatial neighborhood block or from one or more illumination compensation parameters only if the at least one spatial neighborhood block and the current block belong to the same local illumination compensation group, referred to as the current local illumination compensation group, a local illumination group being a group of blocks, wherein the local illumination compensation parameters can only be inherited or calculated from the blocks in said group of blocks.

18. A signal comprising data generated by the encoding method according to claim 16 or by the encoding apparatus according to claim 17.

19. A computer program comprising program code instructions for implementing the decoding method according to any preceding claim 1 to 14 or the encoding method according to claim 16.

20. An information storage medium storing program code instructions for implementing the decoding method of any preceding claim 1 to 14 or the encoding method of claim 16.

Technical Field

At least one of the present embodiments relates generally to a method and apparatus for picture encoding and decoding, and more particularly, to a method and apparatus for picture encoding and decoding using local illumination compensation.

Background

To achieve high compression efficiency, image and video coding schemes typically employ prediction and transform to exploit spatial and temporal redundancy in video content. Generally, intra or inter prediction is used to exploit intra or inter correlation, and then the difference between the original image block and the predicted image block (usually denoted prediction error or prediction residual) is transformed, quantized and entropy encoded. During encoding, it is often possible to partition/partition an original image block into sub-blocks using quadtree partitioning. To reconstruct video, compressed data is decoded by inverse processes corresponding to prediction, transformation, quantization, and entropy coding.

Disclosure of Invention

One or more of the present embodiments provide a method of encoding/decoding a picture using illumination compensation.

According to a general aspect of at least one embodiment, there is provided a decoding method including:

-determining at least one illumination compensation parameter for the current block;

-reconstructing the current block using the determined illumination compensation parameters;

wherein the at least one illumination compensation parameter for the current block is determined from one or more reconstructed samples of the at least one spatial neighborhood block or from one or more illumination compensation parameters only if the at least one spatial neighborhood block and the current block belong to the same local illumination compensation group, referred to as the current local illumination compensation group.

According to another general aspect of at least one embodiment, there is provided a decoding apparatus comprising one or more processors configured to implement:

-determining at least one illumination compensation parameter for the current block;

-reconstructing the current block using the determined illumination compensation parameters;

wherein the at least one illumination compensation parameter for the current block is determined from one or more reconstructed samples of the at least one spatial neighborhood block or from one or more illumination compensation parameters only if the at least one spatial neighborhood block and the current block belong to the same local illumination compensation group, referred to as the current local illumination compensation group.

According to another general aspect of at least one embodiment, there is provided an encoding method comprising:

-determining at least one illumination compensation parameter for the current block;

-reconstructing the current block using the determined illumination compensation parameters;

wherein the at least one illumination compensation parameter for the current block is determined from one or more reconstructed samples of the at least one spatial neighborhood block or from one or more illumination compensation parameters only if the at least one spatial neighborhood block and the current block belong to the same local illumination compensation group, referred to as the current local illumination compensation group.

According to another general aspect of at least one embodiment, there is provided an encoding apparatus comprising one or more processors configured to:

-determining at least one illumination compensation parameter for the current block;

-encoding the current block using the determined illumination compensation parameters;

wherein the at least one illumination compensation parameter for the current block is determined from one or more reconstructed samples of the at least one spatial neighborhood block or from one or more illumination compensation parameters only if the at least one spatial neighborhood block and the current block belong to the same local illumination compensation group, referred to as the current local illumination compensation group.

According to another general aspect of at least one embodiment, a bitstream is formatted to include a signal generated according to the encoding method described above.

One or more of the present embodiments also provide a computer-readable storage medium having stored thereon instructions for encoding or decoding video data according to at least a portion of any of the methods described above. One or more embodiments also provide a computer-readable storage medium on which a bitstream generated according to the above-described encoding method is stored. One or more embodiments also provide a method and apparatus for transmitting or receiving a bitstream generated according to the above-described encoding method. One or more embodiments also provide a computer program product comprising instructions for performing at least a portion of any of the methods described above.

Drawings

FIG. 1 depicts a Coding Tree Unit (CTU) partitioned into smaller units;

FIG. 2 illustrates the principle of Local Illumination Compensation (LIC) parameter derivation for a current block from neighboring reconstructed samples and corresponding co-located reference samples in the case of "JEM-LIC";

FIG. 3 illustrates an LIC parameter calculation process in the case of "VVC-LIC";

fig. 4 illustrates, on the left side, LIC parameter derivation of the LIC parameters stored from the upper side in the case of "VVC-LIC", and, on the right side, vertical (dark gray) and horizontal (light gray) LIC parameters stored at the frame level of 4x4 resolution;

FIG. 5 depicts the stored LIC parameters for CTUs of size 128x128 and 32x2 with "VVC-LIC";

FIG. 6 depicts a current Coding Unit (CU) and its left, upper neighboring CU;

FIG. 7 depicts CTUs partitioned as CUs, and illustrates the principle of unavailability of LIC parameters for some of them in the case of "VVC-LIC" or the unavailability of neighboring reconstructed samples in the case of "JEM-LIC";

FIG. 8 illustrates a flow diagram of a method for decoding a CU in the case of "VVC-LIC", in accordance with one embodiment;

FIG. 9 depicts a CTU partitioned as a CU, and illustrates principles of LIC parameter access constraints according to various embodiments in the case of "VVC-LIC" or "JEM-LIC";

FIGS. 10 and 11 depict CTUs partitioned into CUs and illustrate the principle of LIC-groups (LIC-groups) according to various embodiments;

12A and 12B depict a flow diagram of a decoding method according to various embodiments;

fig. 13 depicts a current CU and its neighboring CUs and illustrates the principle of LIC parameter derivation according to one embodiment;

fig. 14 illustrates a block diagram of a video encoder according to an embodiment;

fig. 15 illustrates a block diagram of a video decoder according to an embodiment; and

FIG. 16 illustrates a block diagram of an example of a system in which aspects and embodiments are implemented.

Detailed Description

In HEVC coding, a picture is partitioned into square-shaped CTUs of configurable size (typically 64x64, 128x128, or 256x 256). The CTU is the root of a quadtree partitioned into four equal-sized square Coding Units (CUs), i.e. half the parent block size in width and height, as shown in fig. 1. A quadtree is a tree in which a parent node may be partitioned into four child nodes, each of which may become a parent node that is further partitioned into four child nodes. In HEVC, a Coding Block (CB) is partitioned into one or more Prediction Blocks (PB) and forms the root of a quadtree partitioned into Transform Blocks (TB). The Coding Unit (CU) includes a Prediction Unit (PU) including prediction information of all color components and a tree-structured set of Transform Units (TUs) corresponding to the coding block, the prediction block and the transform block, the TUs including a residual coding syntax structure for each color component. The sizes of CB, PB, and TB of the luma components are applied to the corresponding CUs, PU, and TU.

In more recent coding systems, the CTU is the root of a coding tree partitioned into Coding Units (CUs). A coding tree is a tree in which a parent node (typically corresponding to a CU) may be partitioned into child nodes (e.g., into 2, 3, or 4 child nodes), each of which may become a parent node for further partitioning into child nodes. In addition to the quadtree splitting pattern, new splitting patterns (binary tree symmetric splitting pattern, binary tree asymmetric splitting pattern, and ternary tree splitting pattern) are defined, which increase the total number of possible splitting patterns. The coding tree has a unique root node, e.g., CTU. The leaves of the coding tree are the termination nodes of the tree. Each node of the coding tree represents a CU, which may be further partitioned into smaller CUs, also referred to as sub-CUs or more generally as sub-blocks. Once a CTU partition is determined to be a CU, the CU corresponding to a leaf of the coding tree is encoded. The CTU partitioning into CUs and the coding parameters used to code each CU (corresponding to a leaf of the coding tree) can be determined at the encoder side by a rate-distortion optimization process. The CB is not partitioned into PB and TB, i.e., a CU consists of a single PU and a single TU.

The image may be partitioned into strips or tiles (tiles). Each slice or tile is a group of CUs and/or may contain a partial CU.

In this application, the term "block" or "picture block" may be used to refer to any one of CTU, CU, PU, TU, CB, PB, and TB. In addition, the term "block" or "picture block" may be used to refer to macroblocks, partitions, and sub-blocks specified in the h.264/AVC or other video coding standard, and more generally to sample arrays of various sizes.

In this application, the terms "reconstruction" and "decoding" are used interchangeably, the terms "pixel" and "sample" are used interchangeably, and the terms "image", "picture", "frame", "slice" or "tile" are used interchangeably. Typically, but not necessarily, the term "reconstruction" is used at the encoder side, while "decoded" is used at the decoder side.

For an encoded CU, a prediction block is constructed from neighboring reconstructed samples (intra prediction) or from previously reconstructed pictures (inter prediction) stored in a Decoded Picture Buffer (DPB). Next, residual samples calculated as the difference between the original sample and the PU sample are transformed and quantized. In inter-prediction, motion compensated temporal prediction is employed to exploit redundancy that exists between successive pictures of video. To this end, a motion vector and a reference index 0(refIdx0) indicating which reference picture of LIST _0 is to be used are associated with the PU. Possibly, several PUs are combined together to form one final PU (e.g., bi-prediction, generalized bi-prediction, or multi-hypothesis prediction).

In the Joint Exploration Model (JEM) developed by the jfet (joint video exploration team) group, other temporal prediction tools are introduced that exploit the associated parameters determined at the decoder side, including Local Illumination Compensation (LIC). Basically, the purpose of LIC is to compensate for illumination variations that may occur between a prediction block and its reference block employed by motion-compensated temporal prediction.

The use of LIC is typically signaled on the CU level by a flag (LIC flag) associated with each Coding Unit (CU) that is inter-coded. According to this tool, the decoder calculates some prediction parameters based on some reconstructed picture samples located to the left and/or top of the current block to be predicted and reference picture samples located to the left and/or top of the motion compensated block (fig. 2). In JEM, the use of LIC for a given block depends on the flag associated with the block, called LIC flag. Throughout this document, this technique is referred to as "JEM-LIC".

LIC parameters (weight ═ a, offset ═ b) are determined by minimizing local distortion defined as:

dist=∑r∈Vcur,s∈Vref(rec_cur(r)-a.rec_ref(s)-b)2(equation 1)

Wherein: rec _ cur (r) is a neighboring reconstructed sample

rec _ ref is a reference sample

Vcur is the reconstructed sample adjacent to the current CU,

vref is the reconstructed sample that is adjacent to the reference sample used to build the PU.

Once the encoder or decoder obtains the LIC parameters for the current CU, the prediction pred (current _ block) of the current CU is determined as follows (unidirectional prediction case):

pred (current _ block) ═ a × ref _ block + b (equation 1)

Where current _ block is the current block to be predicted, pred (current _ block) is the prediction of the current block, and ref _ block is the reference block used for temporal prediction of the current block.

One drawback of this basic approach is that it requires the encoder/decoder to access reconstructed samples of the top and left neighboring blocks that have already been reconstructed. This aspect is undesirable, primarily because it introduces some delay in the motion compensation process, increases memory bandwidth (accessing additional references and reconstructing neighboring samples, as depicted in fig. 2), and potentially destroys some existing decoder pipeline architectures.

To address these issues, the LIC parameters may be calculated in a manner that avoids accessing these additional samples. To this end, the LIC parameters are calculated with the lower and right edges of the current CU after reconstruction by each CU and stored so that they can be reused by subsequent CUs to perform LIC compensation (fig. 3). Throughout this document, this technique is referred to as "VVC-LIC".

However, one major drawback of this latter approach is that it stores LIC parameters for the entire slice or picture after reconstruction of each CU, which results in increased memory consumption (fig. 4) and increased throughput in the decoding process. On the left side of fig. 4, the LIC parameters of the current CU are determined from the stored LIC parameters on the upper side. On the right side of fig. 4, the vertical (dark gray) and horizontal (light gray) LIC parameters are stored at the frame level at 4x4 resolution.

In the case of "VVC-LIC", memory requirements can be reduced by storing LIC parameters into a common LIC buffer for decoding all CTUs. The LIC buffer includes a single column of size equal to the CTU height and a single row of size equal to the CTU width, as depicted in fig. 5. At the end of each CU process, LIC parameters are calculated on the bottom and right boundaries for each color component and each reference list. They are then stored in a common LIC buffer so as to be accessible by subsequent CUs (on the right or lower side of the current CU). The LIC parameters may be accessed in a common LIC buffer during the CU prediction phase. The row buffer contains LIC parameters calculated using the upper-adjacent CU, and the column buffer contains LIC parameters calculated using the left-adjacent CU, as depicted in fig. 5.

If the minimum CTU size is 4x4, then for the 3 color components (fig. 5) and the 2 reference list, all LIC parameters are stored in one LIC buffer of size (CTU-width/4) for all top LIC parameters and in one LIC buffer of size (CTU-height/4) for the left LIC parameter.

Determining LIC parameters for use in PU reconstruction

In inter uni-directional mode, a PU is built by motion compensating a block of samples in a previously reconstructed reference picture stored in a Decoded Picture Buffer (DPB). The DPB includes two lists of reference pictures (L0 and L1), and each reference picture is associated with an index (refIdx). In bi-prediction, two prediction blocks are built from two reference pictures of L0 and L1 using two reference indices (refIdx0, refIdx 1). When LIC is enabled for the current CU, the LIC parameters are copied from LIC parameters calculated by a top (or a left) reconstructed CU ("VVC-LIC", which is stored in a common row (or column) LIC buffer). LIC parameters were determined from the reconstructed top and left samples in the case of "JEM-LIC".

In the case of "VVC-LIC", because both the top and left LIC parameters are available but may be different, pruning is performed to obtain a single LIC model. Intra-coded CU neighborhoods are discarded in the pruning process. Next, neighborhoods with trivial models [ weight 1 and offset 0] are discarded during pruning. If no models remain, then a trivial model is used. If the model(s) still remain, the neighborhood with the same reference index as the current CU is given higher priority. If multiple neighborhoods have the same reference index, the top-right (or bottom-left) neighborhood is given higher priority than the top-left (or top-bottom) neighborhood (FIG. 6).

In a variant, the neighborhood whose MV is closest to the MV of the current CU is given higher priority. In fig. 6, the top and left neighbors are scanned from top right to top left and from bottom left to top left to find the neighbors (if any) that have the same reference index as the current PU.

The same pruning principle can be applied to "JEM-LIC". In that case, the reconstructed samples used to calculate the LIC parameters are the samples corresponding to CUs given higher priority.

In the case of "VVC-LIC", the LIC buffer storing the top LIC parameters is reset to default values before reconstructing one CTU, so that LIC is disabled for the CUs on top of the current CTU. When starting to reconstruct a row of CTUs, the LIC buffer storing the left-side LIC parameters is reset to a default value, so that LIC is disabled only when the CTU is the first CTU in a row (fig. 7). In fig. 7, the upper LIC parameter is not available to CUs located at the top of the CTU. Furthermore, for CUs at the bottom of the CTU, the LIC parameters are not calculated, since for CTUs on the lower side, no access to the LIC parameters on the upper side is allowed (fig. 7).

The "VVC-LIC" and "JEM-LIC" methods introduce dependencies when decoding inter-frame CUs. In fact, in case LIC-flag is true, the current CU needs to wait for the left-side CU and the upper-side CU to be decoded before starting its own decoding. Furthermore, the "VVC-LIC" method increases the amount of computation by calculating LIC parameters after each CU reconstruction (bottom and right edges), even if the right or bottom CU does not use LIC. Finally, LIC-flag is also costly to encode.

At least one embodiment proposes to reduce the pipeline dependencies introduced by LIC when inter-decoding a CU by adding some constraints in the LIC process.

At least one embodiment proposes an increase in signaling for improving coding efficiency and speeding up the decoding process.

Examples1

Fig. 8 represents a flow chart of a method for decoding a current CU in case of "VVC-LIC", according to a specific and non-limiting embodiment. First, syntax elements associated with the current CU are parsed from the bitstream (310), and CU parameters are decoded (320). This includes decoding CU parameters explicitly coded in the bitstream (e.g., IC-flag) and other CU parameters inferred from other syntax elements (e.g., in merge mode, where IC-flag is inferred from IC-flags of neighboring CUs inherited by the current CU). Next, a prediction PU (motion compensation) is established (321). If IC-flag is true, LIC parameters are determined from the LIC buffer (322) in case of "VVC-LIC" and illumination compensation is applied on the Prediction (PU), i.e. the current CU uses the determined illumination compensation parameters for its reconstruction. Next, the CU is reconstructed by adding the residual to the predicted PU (325).

The next step (330-390) deals with the calculation and storage of LIC parameters that may be used by subsequent CUs. If the current CU is at the bottom of the current CTU (330), the horizontal LIC parameter is set to a default value (340), otherwise, the horizontal LIC parameter is calculated using reconstructed samples of the current CU at the bottom of the CU. They are then stored in a horizontal LIC buffer (360). If the current CU is located to the right of the current CTU (370), the vertical LIC parameters are set to default values (340), otherwise, the vertical LIC parameters are calculated using reconstructed samples of the current CU located to the right of the current CU (380) and stored in a vertical LIC buffer (390).

This embodiment is also applicable to "JEM-LIC" in addition to the VVC-LIC specific steps 330-390. In the case of VVC-LIC, the LIC parameters for the current CU are derived from the LIC buffer in step 322. In the case of JEM-LIC, the LIC parameters of the current CU are derived from the neighboring reconstructed samples in step 322.

Example 2

At least one embodiment proposes an additional condition for limiting video pipeline dependencies introduced when decoding a CU encoded in inter mode in LIC mode (LIC-flag ═ true) is enabled.

In order to make the decoding of a CU encoded in inter mode in one CTU independent of the decoding of a CU within another CTU, the inheritance of LIC parameters computed from another CU is constrained to be within the same CTU as the current CU. In other words, a CU can inherit LIC parameters from another CU only if the CU is in the same CTU as the current CU.

In practice, in the case of "VVC-LIC", this may be achieved by filling LIC parameters of the vertical buffer (see the dark grey buffer in fig. 5) with a default LIC value (340) (weight 1, offset 0) at the beginning of decoding the current CTU (370, 380). This may also be achieved by disabling the LIC for the upper left CU in the CTU. In the case of "JEM-LIC", this can be achieved by disabling the use of reconstructed samples other than the current CTU in equation 1. FIG. 9 depicts LIC parameter inheritance ("VVC-LIC" case) or reconstructed sample access ("JEM-LIC" case) constraints corresponding to various embodiments. At the upper right of fig. 9, LIC parameter access or reconstructed sample access is constrained to the current CTU. At the top left and bottom of fig. 9, in addition to the first CU in one image row, LIC parameter access or reconstructed sample access on the left side is allowed, but access to the top LIC parameter or top reconstructed sample is constrained to the current CTU on the top left of fig. 9.

Example 3

In at least one embodiment, LIC groups are defined in which LIC parameters can only be inherited or computed from CUs in the same LIC group. By doing so, the decoding of some CUs encoded in inter mode in one LIC group is made independent of the decoding of other CUs in the other LIC group. This allows different CUs to be decoded in inter mode by separate threads. When the LIC group is a CTU, embodiment 3 is the same as embodiment 2 (upper right of fig. 9). The LIC group size can be determined by the VPU (video processing unit) or VDPU (video data processing unit) or HU (hardware unit), which is the maximum sample size that the hardware can process together. In a variant, the LIC group or VPU is encoded in the bitstream in a sequence header (e.g., SPS, which stands for sequence parameter set) or a picture/slice header (e.g., PPS, which stands for picture parameter set).

As an example, when the size of the CTU is 128x128, the size of the "LIC-groups" may be 64x64 or 128x128 or 256x 256. Thus, the LIC group may be a CTU, may be smaller or larger than the CTU.

In a variant, for the upper left CU in the LIC group, LIC-flag is not coded and is inferred to be false. In other words, in case the current block is not located at the upper left in the same local illumination compensation group, a flag is decoded to indicate whether the determined illumination compensation parameters are used for reconstructing the current block.

In another variant, LIC-flag is not coded and is inferred to be false for CUs in the LIC group whose all top neighborhoods or left neighborhoods are coded in intra mode. In other words, in case that at least one block located at the upper side or the left side of the current block is encoded in the inter mode, a flag is decoded to indicate whether the determined illumination compensation parameter is used to reconstruct the current block.

Example 4

Fig. 12A depicts a flow diagram of a decoding method according to one embodiment. More precisely, fig. 12A illustrates decoding of LIC-group-flag-enabled of CUs belonging to a LIC group that is a group of CUs. In this example, the LIC group corresponds to one CTU. Another LIC group is defined. A flag (LIC-group-flag-enabled) is decoded (315) to indicate whether at least one CU in the LIC group uses LIC for calculating the prediction. This may be used with "JEM-LIC" or "VVC-LIC".

Next, a prediction PU (motion compensation) is established (321). If IC-flag is true and LIC-group-flag-enhanced, LIC parameters are determined from LIC buffer (322) and illumination compensation is applied to the Prediction (PU). Next, the CU is reconstructed by adding the residual to the predicted PU (325).

Defining such a flag improves coding efficiency because in case LIC-group-flag-enabled equals false then:

a) the LIC-flag is not decoded for CUs within the LIC group, but is inferred to be false (320).

b) It speeds up the decoder because for a CU within LIC-group-2, LIC is not applied on the PU (322).

c) In the case of "VVC-LIC", it also speeds up the decoder, since the LIC parameters are not calculated (335) for CUs within the LIC group, unless they are to the right or bottom of the LIC group (FIG. 10).

This embodiment is independent of the other embodiments 1-3, but can also be combined with embodiments 1-3. In the first case, LIC-group-flag-enabled "is coded and applied: for IC-flag-true CU, there is no constraint on the derivation of LIC parameters as in examples 1-3. In the second case, "LIC-group-flag-enabled" is coded and applied: for IC-flag-true CU, the constraints on the derivation of LIC parameters are the same as in embodiments 1-3.

In fig. 10, in the case of "VVC-LIC", where LIC-group-flag-enabled is equal to false, for CUs (white CUs) within the LIC group, LIC parameters are not calculated unless they are the right side or bottom of the LIC group (grey CUs). Here, one group corresponds to one CTU.

In a variant, in the case of "VVC-LIC", a flag (LIC-group-flag-enabled) indicates whether LIC parameters should be calculated and stored after reconstructing the CUs of the LIC group.

Example 5

In a variant of embodiment 4 depicted in fig. 12B, the semantics of LIC-group-flag-enabled are changed. It indicates whether at least one CU has a LIC-flag value, which is true when LIC-flag (318) (not inherited by "merge mode") is explicitly encoded in the LIC group. In this case, its LIC-flag value is inherited from other CUs (the "merge mode": 317merge-flag is true) and CUs for which LIC-flag is not encoded are not considered by LIC-group-flag-enabled. For example, there may be a LIC-group-flag-enabled in one LIC group, and one CU may inherit the LIC-flag from one neighboring CU (fig. 11). LIC-group-flag-enabled indicates that at least one CU in the LIC group for which the LIC-flag value is explicitly coded (not inherited by the merge), and LIC-flag is equal to true (CTU at the top left in fig. 11). LIC-group-flag-enabled indicates that all CUs in the LIC group for which the value of LIC-flag is explicitly coded (not inherited by the merge) have LIC-flag equal to false, but when a CU inherits the value of LIC-flag (merge mode) (upper right CTU in fig. 11), it is possible for a CU to have LIC-flag equal to true.

Example 6

In a variant, "LIC-group-flag-enabled" is encoded together with the first CU in the group of CUs encoded in inter mode. In this way, if all CUs are intra-coded, the flag "LIC-group-flag-enabled" is not coded and is inferred to be false.

In another variant, "LIC-group-flag-enabled" is encoded with the first CU in the set encoded in inter-frame rather than in merge mode. In this way, if all CUs are coded in intra or inter merge, the flag "LIC-group-flag-enabled" is not coded and it is inferred to be false.

In a variant, the value of "LIC-group-flag-enabled" does not modify the value of "LIC-flag" for CUs in inter-frame merge mode. The CU in the inter-frame merging mode infers the value of the LIC-flag from the LIC-flag of the reconstructed CU, which inherits other coding parameters.

In a variant, if the value of "LIC-group-flag-enabled" is false, the value of "LIC-flag" is inferred to be false for all CUs (in intra and intra merge mode). In this case, the CU of intra-merge mode infers that the value of LIC-flag is false.

Example 7

In a variant of embodiment 4, a minimum CU size "minCUsize" is defined, and LIC-group-flag-enabled indicates whether at least one CU in the LIC group having a size smaller than "minCUsize" uses the LIC for calculating the prediction. Thus, if LIC-group-flag-enabled is equal to false, LIC-flag is not coded for CUs smaller in size than "minCUsize".

In a variant, LIC-group-flag-enabled indicates whether at least one CU in the LIC group having a size greater than "minCUsize" uses LIC for calculating the prediction. Thus, if LIC-group-flag-enabled is equal to false, LIC-flag is not coded for CUs having a size greater than "minCUsize".

Advantageously, the value "minCUsize" is encoded in the bitstream, for example in the SPS, PPS or slice header. Examples of "minCUsize" may typically be 4x4 or 8x 8.

Example 8

Examples 1, 2, 3, 4, 5, 6, 7 may also be applied and combined to the case of "JEM-LIC" and "VVC-LIC" techniques, except that the LIC parameters are not calculated for "JEM-LIC" after CU reconstruction. The constraints on access to the LIC parameters in the top horizontal LIC buffer or the left vertical LIC buffer of "VVC-LIC" correspond to the constraints on access to reconstructed samples located on the top or left side of the current CU for "JEM-LIC", respectively.

Example 9

In the case of "VVC-LIC" or "JEM-LIC", in selecting LIC parameters (or reconstructed samples) from neighboring CUs (FIG. 6), a list of LIC parameters (or reconstructed samples) associated with a CU is built using the same reference index, and in the case of "VVC-LIC", the LIC parameter for the current CU is the average of these LIC parameters. In the "VVC-LIC" variant, the average is a weighted average, where the weight is proportional to the adjacent CU width (upper CU) or the adjacent CU height (left CU). In a variant, the weights are proportional to the length of the common boundary of the current CU, as depicted in fig. 13, for weights w1 and w 7.

In a variant, the LIC parameters (or reconstructed samples) of the neighborhood whose MV is closest to the current MV of the current CU are used for the current CU (the LIC parameters are calculated separately).

Various embodiments enable the decoding of CUs (e.g., one CTU) in one LIC group that are encoded in inter mode, independently of the decoding of CUs in another LIC group. LIC parameters calculated from other CUs ("VVC-LIC") or inheritance of reconstructed sample sets used to derive LIC parameters ("JEM-LIC") are constrained to be within the same LIC group as the current CU. In other words, only if the CU is in the same LIC group as the current CU, one CU can inherit LIC parameters from another CU or use reconstructed samples.

Various aspects including tools, features, embodiments, models, methods, and the like are described herein. Many of these aspects are described specifically and often in a manner that can be audibly limited, at least to illustrate various features. However, this is for clarity of description and does not limit the application or scope of those aspects. Indeed, all of the different aspects may be combined and interchanged to provide further aspects. Further, these aspects may also be combined and interchanged with the aspects described in the previous applications.

The aspects described and contemplated herein may be embodied in many different forms. Fig. 14, 15, and 16 below provide some embodiments, but other embodiments are contemplated and the discussion of fig. 14, 15, and 16 does not limit the breadth of implementations. At least one of these aspects relates generally to video encoding and decoding, and at least another aspect relates generally to transmitting a generated or encoded bitstream. These and other aspects may be implemented as a method, an apparatus, a computer-readable storage medium having stored thereon instructions for encoding or decoding video data according to any of the described methods, and/or a computer-readable storage medium having stored thereon a bitstream generated according to any of the described methods.

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

Various methods and other aspects described herein may be used to modify modules, such as the motion compensation and motion estimation modules (170, 175, 275) of the video encoder 100 and decoder 200 shown in fig. 14 and 15. In some embodiments, the entropy encoding and/or decoding modules (145, 230) are also modified. Moreover, the present aspects are not limited to VVC or HEVC, and may be applied to, for example, other standards and recommendations, whether pre-existing or developed in the future, as well as extensions of any such standards and recommendations (including VVC and HEVC). The aspects described in this application may be used alone or in combination unless otherwise indicated or technically excluded.

Various values are used in this application, for example, the size of "LIC group" and "minCUsize". The particular values are for purposes of example, and the described aspects are not limited to these particular values.

Fig. 14 illustrates an exemplary encoder 100. Variations of this encoder 100 are contemplated, but for clarity, the encoder 100 is described below without describing all contemplated variations.

Before being encoded, the video sequence may be subjected to a pre-encoding process (101), for example, applying a color transformation (e.g., conversion from RGB 4:4:4 to YCbCr 4:2: 0) to the input color pictures, or performing a re-mapping of the input image components in order to obtain a more resilient signal distribution to compression (e.g., using histogram equalization of one of the color components). Metadata may be associated with the pre-processing and appended to the bitstream.

In the encoder 100, the pictures are encoded by an encoder element, as described below. The picture to be encoded is partitioned (102) and processed, for example, in units of CUs. Each CU is encoded, for example, using intra or inter modes. When a unit is encoded in intra mode, it performs intra prediction (160). In inter mode, motion estimation (175) and compensation (170) are performed. The encoder decides (105) which of the intra mode or inter mode is used for the coding unit and indicates the intra/inter decision, e.g. by a prediction mode flag. A prediction residual is calculated by subtracting (110) the prediction block from the original image block.

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

The encoder decodes the encoded block to provide a reference for further prediction. The quantized transform coefficients are dequantized (140) and inverse transformed (150) to decode the prediction residual. The decoded prediction residual and the prediction block are combined (155) to reconstruct the image block. The prediction may be established as a combination of several predictions (e.g., bi-prediction, generalized bi-prediction, or multi-hypothesis prediction). An in-loop filter (165) is applied to the reconstructed picture, for example to perform deblocking/SAO (sample adaptive offset) filtering to reduce coding artifacts. The filtered image is stored in a reference picture buffer (180).

Fig. 15 illustrates a block diagram of the video decoder 200. In the decoder 200, the bit stream is decoded by a decoder element, as described below. The video decoder 200 generally performs the decoding pass that is the inverse of the encoding pass described in fig. 14. The encoder 100 also typically performs video decoding as part of the encoded video data.

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

The decoded pictures may further undergo a post-decoding process (285), such as an inverse color transform (e.g., conversion from YCbCr 4:2:0 to RGB 4:4: 4) or an inverse remapping to perform an inverse process to the remapping process performed in the pre-encoding process (101). The post-decoding process may use metadata derived in the pre-encoding process and signaled in the bitstream.

FIG. 16 illustrates a block diagram of an example of a system in which various aspects and embodiments are implemented. The system 1000 may be embodied as a device that includes the various components described below and is configured to perform one or more aspects described in this document. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptop computers, smart phones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. The elements of system 1000 may be embodied individually 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 1000 are distributed across multiple ICs and/or discrete components. In various embodiments, system 1000 is communicatively coupled to one or more other systems or other electronic devices, e.g., via a communication bus or through dedicated input and/or output ports. In various embodiments, system 1000 is configured to implement one or more aspects described in this document.

The system 1000 includes at least one processor 1010 configured to execute instructions loaded therein for implementing various aspects described in this document, for example. The processor 1010 may include embedded memory, input-output interfaces, and various other circuits known in the art. The system 1000 may also include at least one memory 1020 (e.g., volatile memory devices, non-volatile memory devices). System 1000 may include a storage device 1040 that may include non-volatile memory and/or volatile memory, including but not limited to Electrically Erasable Programmable Read Only Memory (EEPROM), Read Only Memory (ROM), Programmable Read Only Memory (PROM), Random Access Memory (RAM), Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), flash memory, magnetic disk drives, and/or optical disk drives. By way of non-limiting example, the storage 1040 may include an internal storage, an attached storage (including removable and non-removable storage), and/or a network accessible storage.

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

Program code to be loaded onto processor 1010 or encoder/decoder 1030 to perform the various aspects described in this document may be stored in storage device 1040 and subsequently loaded onto memory 1020 for execution by processor 1010. According to an example embodiment, one or more of the processor 1010, memory 1020, storage 1040, and encoder/decoder module 1030 may store one or more of a variety of items during performance of the processes described in this document. Such stored items include, but are not limited to, input video, decoded video or a portion of decoded video, a bitstream, a matrix, variables, and intermediate or final results to equations, formulas, operations, and operation logic.

In some embodiments, memory internal to processor 1010 and/or encoder/decoder module 1030 is used to store instructions and provide working memory for processing required during encoding or decoding. However, in other embodiments, memory external to the processing device (e.g., the processing device may be the processor 1010 or the encoder/decoder module 1030) is used for one or more of these functions. The external memory may be memory 1020 and/or storage 1040, such as dynamic volatile memory and/or non-volatile flash memory. In several embodiments, external non-volatile flash memory is used to store an operating system, such as a television. In at least one embodiment, fast external dynamic volatile memory such as RAM is used as working memory for video encoding and decoding operations, such as for MPEG-2(MPEG refers to moving picture experts group, MPEG-2 is also known as ISO/IEC 13818, and 13818-1 is also known as h.222, and 13818-2 is also known as h.262), HEVC (HEVC refers to high efficiency video coding, also known as h.265 and MPEG-H part 2) or VVC (universal video coding, a new standard developed by jmet (joint video experts group)).

Input to the elements of system 1000 may be provided through various input devices as indicated in a block 1130. Such input devices include, but are not limited to, (i) a Radio Frequency (RF) portion that receives RF signals transmitted over the air, for example, by a broadcaster, (ii) a composite input terminal (or set of COMP input terminals), (iii) a Universal Serial Bus (USB) input terminal, and/or (iv) a High Definition Multimedia Interface (HDMI) input terminal. Other examples not shown in fig. 10 include composite video.

In various embodiments, the input device of block 1130 has an associated respective input processing element, as is known in the art. For example, the RF section may be associated with elements suitable for: (i) selecting a desired frequency (also referred to as selecting a signal, or band-limiting a signal to a band of frequencies), (ii) down-converting the selected signal, (iii) band-limiting the band to a narrower frequency again to select, for example, a frequency band of the signal which may be referred to as a channel in some embodiments, (iv) demodulating the down-converted, band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired data packet. The RF section of various embodiments includes one or more elements that perform these functions, such as frequency selectors, signal selectors, band limiters, channel selectors, filters, down-converters, demodulators, error correctors, and demultiplexers. The RF section may 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 or near baseband frequency) or 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 re-filtering to a desired frequency band. Various embodiments rearrange the order of the above (and other) elements, remove some of these elements, and/or add other elements that perform similar or different functions. Adding components may include inserting components between existing components, for example, inserting amplifiers and analog-to-digital converters. In various embodiments, the RF section includes an antenna.

Additionally, the USB and/or HDMI terminals may include respective interface processors for connecting the system 1000 to other electronic devices across USB and/or HDMI connections. It is to be appreciated that various aspects of the input processing, such as reed-solomon error correction, may be implemented, for example, within a separate input processing IC or within the processor 1010, as desired. Similarly, various aspects of the USB or HDMI interface processing may be implemented within a separate interface IC or within the processor 1010, as desired. The demodulated, error corrected and demultiplexed streams are provided to various processing elements including, for example, processor 1010 and encoder/decoder 1030 operating in conjunction with memory and storage elements to process the data streams for presentation on an output device.

The various elements of system 1000 may be provided within an integrated housing. Within the integrated housing, the various components may be interconnected and data transferred therebetween using a suitable connection arrangement, such as internal buses known in the art, including internal IC (I2C) buses, wiring, and printed circuit boards.

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

In various embodiments, the data streams are transmitted to or otherwise provided to system 1000 using a wireless network 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 1060 and a communication interface 1050 adapted for Wi-Fi communication. The communication channel 1060 of these embodiments is typically connected to an access point or router that provides access to external networks, including the internet, to allow streaming applications and other over-the-air communications. Other embodiments provide streamed data to the system 1000 using a set top box that passes the data over the HDMI connection of input block 1130. Other embodiments also provide streamed data to the system 1000 using the RF connection of the input block 1130. As described above, various embodiments provide data in a non-streaming manner. In addition, various embodiments use wireless networks other than Wi-Fi, such as a cellular network or a Bluetooth network.

The system 1000 may provide output signals to various output devices, including a display 1100, speakers 1110, and other peripheral devices 1120. The display 1100 of various embodiments includes, for example, one or more of a touch screen display, an Organic Light Emitting Diode (OLED) display, a curved display, and/or a foldable display. The display 1100 may be used in a television, tablet, laptop, cellular telephone (mobile phone), or other device. The display 1100 may also be integrated with other components (e.g., as in a smart phone), or stand alone (e.g., an external monitor for a laptop computer). Other peripheral devices 1120 include, in various examples of embodiments, one or more of a stand-alone digital video disc (or digital versatile disc) DVR (for both), a disc player, a stereo system, and a lighting system. Various embodiments use one or more peripherals 1120 that provide functionality based on the output of the system 1000. For example, the disk player performs a function of playing the output of the system 1000.

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

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

Embodiments may be implemented by computer software implemented by processor 1010 or by hardware, or by a combination of hardware and software. By way of non-limiting example, embodiments may be implemented by one or more integrated circuits. By way of non-limiting example, the memory 1020 may be of any type suitable to the technical environment and may be implemented using any suitable data storage technology, such as optical storage, magnetic storage, semiconductor-based storage, fixed memory and removable memory. By way of non-limiting example, the processor 1010 may be of any type suitable to the technical environment and may include one or more of microprocessors, general purpose computers, special purpose computers, and processors based on a multi-core architecture.

Various implementations relate to decoding. "decoding" as used in this application may encompass, for example, all or part of the processing performed on a received encoded sequence in order to produce a final output suitable for display. In various embodiments, such processing includes one or more processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transformation, and differential decoding. In various embodiments, such processing also or alternatively includes processing performed by decoders of various implementations described in this application, e.g., motion compensation.

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. The phrase "decoding process" is intended to refer exclusively to a subset of operations or broadly to a broader decoding process, as will be clear based on the context of the particular description and is believed to be well understood by those skilled in the art.

Various implementations relate to encoding. In a similar manner to the discussion above regarding "decoding," encoding "as used in this application may encompass, for example, all or part of the processing performed on an input video sequence in order to produce an encoded bitstream. In various embodiments, such processing includes one or more processes typically performed by an encoder, such as partitioning, differential encoding, transformation, quantization, and entropy encoding. In various embodiments, such processing also or alternatively includes processing performed by encoders of various implementations described in the present application, such as motion compensation.

As a further example, "encoding" in one embodiment refers to entropy encoding only, in another embodiment refers to differential encoding only, and in another embodiment "encoding" refers to a combination of entropy encoding and differential encoding. Whether the phrase "encoding process" is intended to refer exclusively to a subset of operations or broadly to a broader encoding process, it will be clear based on the context of the particular description and is believed to be well understood by those skilled in the art.

Note that syntax elements (e.g., LIC-Flag) as used herein are descriptive terms. Therefore, they do not exclude the use of other syntax element names.

When the figures are presented as flow charts, it should be understood that they also provide block diagrams of the corresponding apparatus. Similarly, when the figures are presented as block diagrams, it should be understood that they also provide flow charts of the corresponding methods/processes.

Various embodiments relate to rate-distortion optimization. In particular, during the encoding process, often given constraints on computational complexity, a trade-off or trade-off between rate and distortion is typically considered. Rate-distortion optimization is typically formulated as a minimization of the rate-distortion function, which is a weighted sum of rate and distortion. There are a number of different approaches to solving the rate-distortion optimization problem. For example, these methods may be based on extensive testing of all encoding options including all considered modes or encoding parameter values, as well as a complete assessment of their encoding costs and associated distortions of the reconstructed signal after encoding and decoding. Faster methods may also be used to save coding complexity, in particular to calculate the approximate distortion based on the prediction or prediction residual signal instead of reconstructed. A mixture of these two approaches may also be used, such as by using approximate distortion for only some possible coding options, and full distortion for other coding options. Other methods evaluate only a subset of the possible coding options. More generally, many approaches employ any of a variety of techniques to perform optimization, but optimization is not necessarily a complete assessment of both coding cost and associated distortion.

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

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

In addition, the present application may refer to "determining" various information. Determining the information may include, for example, one or more of estimating the information, calculating the information, predicting the information, or retrieving the information from memory. "determining" and "deriving" may be used interchangeably.

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

In addition, this application may refer to "receiving" various information. Like "access," receive is intended to be a broad term. Receiving information may include, for example, one or more of accessing information or retrieving information (e.g., from memory). Further, "receiving" typically involves, in one way or another during operation, storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information, for example.

It is to be appreciated that the use of "/", "and/or" and "at least one" below, for example in the case of "a/B", "a and/or B" and "at least one of a and B", is intended to include 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 phrasing is intended to include selection of only the first listed option (a), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (a and B), or only the first and third listed options (a and C), or only the second and third listed options (B and C), or selection of all three options (a and B and C). The term can be extended for many of the items listed as would be readily apparent to one of ordinary skill in this and related arts.

Additionally, as used herein, the word "signaling" refers to, among other things, directing things to a corresponding decoder. For example, in certain embodiments, the encoder signals a particular one of a plurality of parameters for the LIC (e.g., LIC-Flag). 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 may send (explicit signaling) specific parameters to the decoder, so that the decoder may use the same specific parameters. Conversely, if the decoder already has the particular parameters and other parameters, signaling may be used without sending (implicit signaling) to simply let the decoder know and select the particular parameters. By avoiding the transmission of any actual function, bit savings are achieved in various embodiments. It is to be understood that the 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 foregoing refers to a verb form of the word "signal feature," the word "signal" may also be used herein as a noun.

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

We describe a number of embodiments. The features of these embodiments may be provided separately or in any combination. Furthermore, embodiments may include one or more features across the various claim categories and types, either alone or in any combination:

determining at least one illumination compensation parameter for the current block from one or more illumination compensation parameters determined for another block or from reconstructed samples of another block, e.g. a neighboring block.

The illumination compensation parameters for another block are stored in a buffer;

the block is a Coding Unit (CU);

determining that at least one illumination compensation parameter for a current CU can only be present in another CU in the same Coding Tree Unit (CTU);

determining that at least one illumination compensation parameter for a current CU can only occur in another CU belonging to the same group of CUs;

the illumination compensation parameter is a Local Illumination Compensation (LIC) parameter;

encoding (or decoding) a flag, e.g. LIC-group-flag-enabled, for a group of CUs for indicating whether at least one CU in the group uses illumination compensation for calculating the prediction;

a flag for encoding (or decoding) a CU for a group to indicate whether another flag, e.g., LIC-flag, is true if it is encoded for at least one CU in the group, where the other flag indicates for a CU whether illumination compensation is used for predicting this CU.

The flag is encoded (or decoded) with the first CU of a set of CUs encoded in inter mode.

The first CU encoding (or decoding) flag for a group of CUs encoded in inter mode instead of merge mode.

Encoding (or decoding) a flag for a group of CUs to indicate whether at least one CU of the group having a size smaller (or larger) than a value uses illumination compensation for calculating a prediction;

this value is encoded in the SPS, PPS or slice header;

the illumination compensation parameters for the current block are determined from illumination compensation parameters determined for at least one further block having the same reference index as the current block;

the illumination compensation parameters for the current block are determined from reconstructed samples for at least one further block having the same reference index as the current block;

the illumination compensation parameter for the current block is determined as an average of illumination compensation parameters determined for a plurality of other blocks having the same reference index as the reference block;

a bitstream or signal containing one or more described syntax elements, flags or variants thereof.

Insert a flag in the signaling syntax element that enables the decoder to adapt the block prediction using illumination compensation in a manner corresponding to that used by the encoder.

Creating and/or transmitting and/or receiving and/or decoding a bitstream or signal comprising one or more described syntax elements, flags or variants thereof.

A television, set-top box, mobile phone, tablet or other electronic device that performs illumination compensation according to any of the embodiments described.

A television, set-top box, cell phone, tablet or other electronic device that performs illumination compensation according to any of the embodiments described, and displays (e.g., using a monitor, screen or other type of display) the resulting image.

A television, set-top box, handset, tablet or other electronic device that, according to any of the embodiments described, tunes (e.g., using a tuner) a channel to receive a signal comprising an encoded image and performs illumination compensation.

A television, set-top box, mobile phone, tablet or other electronic device that receives (e.g., using an antenna) wirelessly a signal comprising an encoded image and performs illumination compensation according to any of the embodiments described.

According to a general aspect of at least one embodiment, there is provided a decoding method including:

-determining at least one illumination compensation parameter for the current block;

-reconstructing the current block using the determined illumination compensation parameters;

wherein the at least one illumination compensation parameter for the current block is determined from one or more reconstructed samples of the at least one spatial neighborhood block or from one or more illumination compensation parameters only if the at least one spatial neighborhood block and the current block belong to the same local illumination compensation group, referred to as the current local illumination compensation group.

According to a general aspect of at least one embodiment, there is provided a decoding apparatus, comprising one or more processors configured to implement:

-determining at least one illumination compensation parameter for the current block;

-reconstructing the current block using the determined illumination compensation parameters;

wherein the at least one illumination compensation parameter for the current block is determined from one or more reconstructed samples of the at least one spatial neighborhood block or from one or more illumination compensation parameters only if the at least one spatial neighborhood block and the current block belong to the same local illumination compensation group, referred to as the current local illumination compensation group.

According to a general aspect of at least one embodiment, there is provided an encoding method including:

-determining at least one illumination compensation parameter for the current block;

-reconstructing the current block using the determined illumination compensation parameters;

wherein the at least one illumination compensation parameter for the current block is determined from one or more reconstructed samples of the at least one spatial neighborhood block or from one or more illumination compensation parameters only if the at least one spatial neighborhood block and the current block belong to the same local illumination compensation group, referred to as the current local illumination compensation group.

According to a general aspect of at least one embodiment, there is provided an encoding device, comprising one or more processors configured to implement:

-determining at least one illumination compensation parameter for the current block;

-encoding the current block using the determined illumination compensation parameters;

wherein the at least one illumination compensation parameter for the current block is determined from one or more reconstructed samples of the at least one spatial neighborhood block or from one or more illumination compensation parameters only if the at least one spatial neighborhood block and the current block belong to the same local illumination compensation group, referred to as the current local illumination compensation group.

According to another general aspect of at least one embodiment, a bitstream is formatted to include a signal generated according to the encoding method described above.

One or more of the present embodiments also provide a computer-readable storage medium having stored thereon instructions for encoding or decoding video data according to at least a portion of any of the encoding/decoding methods described above. One or more embodiments also provide a computer-readable storage medium on which a bitstream generated according to the above-described encoding method is stored. One or more embodiments also provide a method and apparatus for transmitting or receiving a bitstream generated according to the above-described encoding method. One or more embodiments also provide a computer program product comprising instructions for performing at least a portion of any of the methods described above.

In one embodiment, the linear illumination compensation group is smaller than, larger than, or equal to the coding tree unit.

In an embodiment, in case that the current block is not located at an upper left position in the same local illumination compensation group, a flag indicating whether to use the determined illumination compensation parameter for reconstructing the current block is encoded or decoded.

In an embodiment, in case of encoding at least one block located at an upper side or a left side of the current block in an inter mode, a flag indicating whether to use the determined illumination compensation parameter for reconstructing the current block is encoded or decoded.

In an embodiment, a flag indicating whether at least one block of a current local illumination compensation group uses illumination compensation for prediction is encoded/decoded.

In an embodiment, the encoding/decoding is for indicating whether or not the illumination compensation parameters are to be calculated and stored after reconstructing the block of the current local illumination compensation group.

In an embodiment, a flag indicating whether at least one block of a current local illumination compensation group has a value of another flag being true if the another flag is explicitly encoded, wherein the another flag indicates whether the determined illumination compensation parameters are used for reconstructing the current block.

In an embodiment, the flag is encoded/decoded with the first block of the current local illumination compensation group.

In an embodiment, the flag is encoded/decoded with the first block of the current local illumination compensation group that is not encoded in the merge mode.

In an embodiment, a flag indicating whether at least one block of the group having a size smaller than a value uses illumination compensation for calculating prediction is encoded/decoded for a current local illumination group.

In an embodiment, a flag indicating whether at least one block of the group having a size greater than a value uses illumination compensation for calculating prediction is encoded/decoded for a current local illumination group.

In an embodiment, the at least one illumination compensation parameter for the current block is determined from or from one or more reconstructed samples of at least one spatial neighborhood block that belongs to the current local illumination compensation group and has the same reference index as the current block.

In an embodiment, the at least one illumination compensation parameter for the current block is determined as an average of illumination compensation parameters of two spatial neighborhood blocks belonging to the current local illumination compensation group and having the same reference index as the current block.

In an embodiment, the at least one illumination compensation parameter for the current block is determined from one or more reconstructed samples of at least one spatial neighborhood block belonging to the current local illumination compensation group and having the same reference index as the current block.

30页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:在保持视频质量的同时提高视频比特率

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类