Simplification of cross-component intra prediction
By signaling the phase value information between the chrominance component and the luminance component, the problem of high memory occupancy and calculation amount of existing cross-component intra-prediction tools is solved, and higher application flexibility and efficiency are achieved.
Patent Information
- Application Number
- CN202380057999.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-30
- Filing Date
- 2023-06-13
- Publication Date
- 2025-04-11
AI Technical Summary
The existing cross-component intra prediction tools have high memory usage and calculation volume, and lack application flexibility.
By signaling information indicating the phase value between the chrominance component and the luminance component, it allows for more flexibility in applying the cross component encoding tool, reducing memory usage and calculation per CU or per sample.
Improves the flexibility and efficiency of cross-component encoding tools, and reduces memory occupancy and computing complexity.
Smart Images

Figure CN119817097A_ABST
Abstract
Description
Technical Field
[0001] At least one of the present embodiments generally relates to a method and apparatus for applying cross-component intra prediction. Background Art
[0002] In order to achieve high compression efficiency, video coding schemes typically use prediction and transform to exploit spatial and temporal redundancy in video content. During encoding, pictures of video content are divided into sample blocks (i.e., pixels), which are then partitioned into one or more sub-blocks, hereinafter referred to as original sub-blocks. Intra-frame or inter-frame prediction is then applied to each sub-block to exploit intra-frame or inter-frame image correlation. Regardless of the prediction method used (intra-frame or inter-frame), a predictor sub-block is determined for each original sub-block. The sub-block representing the difference between the original sub-block and the predictor sub-block (usually labeled as a prediction error sub-block, a prediction residual sub-block, or simply a residual sub-block) is then transformed, quantized, and entropy encoded to generate an encoded video stream. In order to reconstruct the video, the compressed data is decoded by an inverse process corresponding to transform, quantization, and entropy encoding.
[0003] Intra prediction has recently been improved to better benefit from the correlation between components of a block. New tools have been proposed, including cross-component intra prediction, where the chrominance samples of a block are predicted from the reconstructed luma samples of the block. However, the memory footprint and complexity of these cross-component (CC) coding tools are generally considered to be relatively high compared to other coding tools.
[0004] It is desirable to propose a solution that allows overcoming the above problems. Specifically, it is desirable to propose a solution that reduces the memory footprint and computational effort per CU or per sample of a CC coding tool. Furthermore, it is desirable to give greater flexibility to the application of the CC coding tool. Summary of the invention
[0005] In a first aspect, one or more of the present embodiments provide a method comprising: for each chrominance component of at least a portion of a picture, signaling information representing a phase value between samples of the chrominance component and samples of a luminance component of the picture, the phase value being taken from at least three different phase values for each chrominance component.
[0006] The first aspect allows more flexibility for applying CC coding tools by allowing any chroma phase value to be signaled.
[0007] In an embodiment, all chrominance components of at least a portion of a picture share the same information representing a phase value.
[0008] In an embodiment, each chrominance component is associated with different information representing a phase value.
[0009] In an embodiment, information representing the phase value is signaled in a sequence parameter set, a picture parameter set, a picture header, or in each region of a picture.
[0010] In a second aspect, one or more of the present embodiments provide a method for encoding, including:
[0011] Get the original image;
[0012] Obtaining information representing the chrominance phase of the original image;
[0013] The method of the first aspect is applied during encoding of a bitstream representing an original picture.
[0014] In one embodiment, the method further comprises encoding a block of the picture using a cross-component coding tool, the cross-component coding tool allowing prediction of chrominance samples of the block from reconstructed luminance samples of the block, wherein during encoding of the block using the cross-component coding tool, downsampling of the reconstructed luminance samples of the block takes into account each phase information.
[0015] In an embodiment, the downsampling of the reconstructed luma samples uses at least one downsampling filter, and the method further comprises signaling coefficients of each downsampling filter.
[0016] In an embodiment, each phase information is considered in a pre-processing process applied to at least a portion of the picture before applying a cross-component coding tool that allows predicting chrominance samples of the block from reconstructed luminance samples of the block.
[0017] In a third aspect, one or more of the present embodiments provide a method for encoding a block of a picture using a cross-component coding tool that allows prediction of chrominance samples of the block from reconstructed luminance samples of the block, the method comprising applying a convolution filter to the reconstructed luminance samples of the block at its original sampling resolution to obtain a predictor of the chrominance samples of the block, wherein the convolution filter is independent of the chrominance format of the block.
[0018] The third aspect avoids applying downsampling of luma samples to determine predictors for chroma samples in chroma formats, such as 4:2:2 or 4:2:0, which is advantageous in terms of computational complexity.
[0019] In a fourth aspect, one or more of the present embodiments provide a method for encoding a block of a picture using a cross-component coding tool, which cross-component coding tool allows the use of a prediction model to predict the chrominance samples of the block from the reconstructed luminance samples of the block, and the prediction model includes obtaining a prediction model parameter set for the block from a prediction model parameter set calculated independently of the samples of the block.
[0020] The fourth aspect allows reusing already calculated cross-component prediction model parameters, which avoids calculating these parameters for each block encoded using the CC coding tool. Therefore, the fourth aspect is beneficial in terms of computational complexity.
[0021] In one embodiment, multiple prediction model parameter sets calculated independently of samples of the block are stored in at least one buffer of prediction model parameter sets, and obtaining the prediction model parameter set for the block includes selecting one of the multiple sets stored in the at least one buffer of the prediction model parameter set.
[0022] In an embodiment, each set of prediction model parameters calculated independently of samples of the block is calculated for another block to which a cross-component coding tool is applied, or is calculated from samples of a set of blocks of a picture different from the set of blocks comprising the block.
[0023] In one embodiment, the method includes determining when to calculate and store new prediction model parameters in response to a condition being satisfied regarding the frequency of updating prediction model parameters for a cross-component coding tool, the condition being satisfied in response to a number of blocks encoded using the cross-component coding tool since a last calculation of a set of prediction model parameters being higher than a value or in response to all blocks of a set of blocks of a picture having been encoded.
[0024] In one embodiment, selecting one of a plurality of sets stored in at least one buffer of sets of prediction model parameters comprises:
[0025] selecting the set based on a comparison of at least one characteristic of the luma samples used for calculating each set of prediction model parameters with the same characteristic of the luma samples of the block, the at least one characteristic being a minimum and / or maximum value of the luma samples or a standard deviation of the luma samples or a mean value of the luma samples; or,
[0026] The sets are selected based on the spatial distance between samples of the block and samples used to estimate each set of prediction model parameters.
[0027] In one embodiment, each buffer is a circular buffer storing a finite number of prediction model parameter sets, and the most recently calculated prediction model parameter set replaces the oldest prediction model parameter set in the buffer.
[0028] In a fifth aspect, one or more of the present embodiments provide a method comprising: for each chrominance component of at least a portion of a picture, parsing information representing a phase value between samples of the chrominance component and samples of the luminance component of the picture, the phase value being taken from at least three different phase values of each chrominance component.
[0029] In an embodiment, all chrominance components of at least a portion of a picture share the same information representing a phase value.
[0030] In an embodiment, each chrominance component is associated with different information representing a phase value.
[0031] In an embodiment, information representing the phase value is signaled in a sequence parameter set, a picture parameter set, a picture header, or in each region of a picture.
[0032] In a sixth aspect, one or more of the present embodiments provide a method for decoding, including:
[0033] Obtaining a bitstream representing a picture;
[0034] Decoding a bit stream, wherein decoding comprises applying the method of the fifth aspect.
[0035] In one embodiment, the method further comprises decoding a block of the picture using a cross-component coding tool, the cross-component coding tool allowing prediction of chrominance samples of the block from reconstructed luminance samples of the block, wherein during decoding of the block using the cross-component coding tool, downsampling of the reconstructed luminance samples of the block takes into account each phase information.
[0036] In an embodiment, the downsampling of the reconstructed luma samples uses at least one downsampling filter, and the method further comprises parsing coefficients of each downsampling filter from the bitstream.
[0037] In an embodiment, each phase information is taken into account in a post-processing process applied to a reconstructed version of at least a portion of the picture after applying a cross-component coding tool allowing prediction of chrominance samples of the block from reconstructed luminance samples of the block.
[0038] In a seventh aspect, one or more of the present embodiments provide a method for decoding a block of a picture using a cross-component coding tool, which cross-component coding tool allows prediction of chrominance samples of the block from reconstructed luminance samples of the block, the method comprising applying a convolution filter to the reconstructed luminance samples of the block at its original sampling resolution to obtain a predictor of the chrominance samples of the block, wherein the convolution filter is independent of the chrominance format of the block.
[0039] In an eighth aspect, one or more of the present embodiments provides a method for decoding a block of a picture using a cross-component coding tool, wherein the cross-component coding tool allows the use of a prediction model to predict the chrominance samples of the block from the reconstructed luminance samples of the block, the prediction model comprising obtaining a prediction model parameter set for the block from a prediction model parameter set calculated independently of the samples of the block.
[0040] In one embodiment, multiple prediction model parameter sets calculated independently of samples of the block are stored in at least one buffer of prediction model parameter sets, and obtaining the prediction model parameter set for the block includes selecting one of the multiple sets stored in the at least one buffer of the prediction model parameter set.
[0041] In an embodiment, each set of prediction model parameters calculated independently of samples of the block is calculated for another block to which a cross-component coding tool is applied, or is calculated from samples of a set of blocks of a picture different from the set of blocks comprising the block.
[0042] In one embodiment, the method includes determining when to calculate and store new prediction model parameters in response to satisfying a condition regarding the frequency of updating prediction model parameters of a cross-component coding tool, the condition being satisfied in response to a number of blocks decoded using the cross-component coding tool since a last calculation of a set of prediction model parameters being higher than a value or in response to all blocks of a set of blocks of a picture having been decoded.
[0043] In one embodiment, selecting one of a plurality of sets stored in at least one buffer of sets of prediction model parameters comprises:
[0044] selecting the set based on a comparison of at least one characteristic of the luma samples used for calculating each set of prediction model parameters with the same characteristic of the luma samples of the block, the at least one characteristic being a minimum and / or maximum value of the luma samples or a standard deviation of the luma samples or a mean value of the luma samples; or,
[0045] The sets are selected based on the spatial distance between samples of the block and samples used to estimate each set of prediction model parameters.
[0046] In one embodiment, each buffer is a circular buffer storing a finite number of prediction model parameter sets, and the most recently calculated prediction model parameter set replaces the oldest prediction model parameter set in the buffer.
[0047] In a ninth aspect, one or more of the present embodiments provide a device comprising an electronic circuit system configured to:
[0048] For each chroma component of at least a portion of a picture, information representing a phase value between samples of the chroma component and samples of a luma component of the picture is signaled, the phase value being taken from at least three different phase values for each chroma component.
[0049] In an embodiment, all chrominance components of at least a portion of a picture share the same information representing a phase value.
[0050] In an embodiment, each chrominance component is associated with different information representing a phase value.
[0051] In an embodiment, information representing the phase value is signaled in a sequence parameter set, a picture parameter set, a picture header, or in each region of a picture.
[0052] In a tenth aspect, one or more of the present embodiments provide an apparatus for encoding, comprising an electronic circuit system configured to:
[0053] Get the original image;
[0054] Obtaining information representing the chrominance phase of the original image;
[0055] And further includes the device of the ninth aspect.
[0056] In one embodiment, the electronic circuit system is further configured to encode a block of a picture using a cross-component coding tool that allows prediction of chrominance samples of the block from reconstructed luminance samples of the block, wherein during encoding of the block using the cross-component coding tool, downsampling of the reconstructed luminance samples of the block takes into account each phase information.
[0057] In an embodiment, the downsampling of the reconstructed luma samples uses at least one downsampling filter, and the electronic circuitry is further configured to signal coefficients of each downsampling filter.
[0058] In an embodiment, each phase information is considered in a pre-processing process applied to at least a portion of the picture before applying a cross-component coding tool that allows predicting chrominance samples of the block from reconstructed luminance samples of the block.
[0059] In an eleventh aspect, one or more of the present embodiments provides an apparatus for encoding a block of a picture using a cross-component coding tool that allows prediction of chrominance samples of the block from reconstructed luminance samples of the block, the apparatus comprising an electronic circuit system configured to apply a convolution filter to the reconstructed luminance samples of the block at its original sampling resolution to obtain a predictor of the chrominance samples of the block, wherein the convolution filter is independent of the chrominance format of the block.
[0060] In a twelfth aspect, one or more of the present embodiments provides a device for encoding a block of a picture using a cross-component coding tool, wherein the cross-component coding tool allows the use of a prediction model to predict the chrominance samples of the block from the reconstructed luminance samples of the block, and the prediction model includes an electronic circuit system that is configured to obtain a prediction model parameter set for the block from a prediction model parameter set calculated independently of the samples of the block.
[0061] In one embodiment, multiple prediction model parameter sets calculated independently of samples of the block are stored in at least one buffer of the prediction model parameter set, and in order to obtain the prediction model parameter set for the block, the electronic circuit system is further configured to select one of the multiple sets stored in at least one buffer of the prediction model parameter set.
[0062] In an embodiment, each set of prediction model parameters calculated independently of samples of the block is calculated for another block to which a cross-component coding tool is applied, or is calculated from samples of a set of blocks of a picture different from the set of blocks comprising the block.
[0063] In one embodiment, the electronic circuit system is further configured to determine when to calculate and store new prediction model parameters in response to a condition being satisfied regarding the frequency of updating the prediction model parameters of the cross-component coding tool, the condition being satisfied in response to a number of blocks encoded using the cross-component coding tool since the last calculation of the prediction model parameter set being higher than a value or in response to all blocks of a set of blocks of a picture having been encoded.
[0064] In one embodiment, selecting one of the plurality of sets stored in at least one buffer of prediction model parameter sets includes the electronic circuit system being further configured to:
[0065] selecting the set based on a comparison of at least one characteristic of the luma samples used for calculating each set of prediction model parameters with the same characteristic of the luma samples of the block, the at least one characteristic being a minimum and / or maximum value of the luma samples or a standard deviation of the luma samples or a mean value of the luma samples; or,
[0066] The sets are selected based on the spatial distance between samples of the block and samples used to estimate each set of prediction model parameters.
[0067] In one embodiment, each buffer is a circular buffer storing a finite number of prediction model parameter sets, and the most recently calculated prediction model parameter set replaces the oldest prediction model parameter set in the buffer.
[0068] In a thirteenth aspect, one or more of the present embodiments provide an apparatus comprising an electronic circuit system configured to:
[0069] For each chroma component of at least a portion of a picture, information representing a phase value between samples of the chroma component and samples of a luma component of the picture is resolved, the phase value being taken from at least three different phase values for each chroma component.
[0070] In an embodiment, all chrominance components of at least a portion of a picture share the same information representing a phase value.
[0071] In an embodiment, each chrominance component is associated with different information representing a phase value.
[0072] In an embodiment, information representing the phase value is signaled in a sequence parameter set, a picture parameter set, a picture header, or in each region of a picture.
[0073] In a fourteenth aspect, one or more of the present embodiments provide an apparatus for decoding, comprising an electronic circuit system configured to:
[0074] obtaining a bitstream representing a picture; and
[0075] Decode the bitstream;
[0076] And includes the equipment of the thirteenth aspect.
[0077] In one embodiment, the electronic circuit system is further configured to decode a block of a picture using a cross-component coding tool that allows prediction of chrominance samples of the block from reconstructed luminance samples of the block, wherein during decoding of the block using the cross-component coding tool, downsampling (1015) of the reconstructed luminance samples of the block takes into account each phase information.
[0078] In an embodiment, the downsampling of the reconstructed luma samples uses at least one downsampling filter, and the electronic circuit system is further configured to parse coefficients of each downsampling filter from the bitstream.
[0079] In an embodiment, each phase information is taken into account in a post-processing process applied to a reconstructed version of at least a portion of the picture after applying a cross-component coding tool allowing prediction of chrominance samples of the block from reconstructed luminance samples of the block.
[0080] In a fifteenth aspect, one or more of the present embodiments provides an apparatus for decoding a block of a picture using a cross-component coding tool that allows prediction of chrominance samples of the block from reconstructed luminance samples of the block, the apparatus comprising an electronic circuit system configured to apply a convolution filter to the reconstructed luminance samples of the block at its original sampling resolution to obtain a predictor of the chrominance samples of the block, wherein the convolution filter is independent of the chrominance format of the block.
[0081] In a sixteenth aspect, one or more of the present embodiments provides a device for decoding a block of a picture using a cross-component coding tool, which cross-component coding tool allows the use of a prediction model to predict the chrominance samples of the block from the reconstructed luminance samples of the block, and the device includes an electronic circuit system that is configured to obtain a prediction model parameter set for the block from a prediction model parameter set calculated independently of the samples of the block.
[0082] In one embodiment, multiple prediction model parameter sets calculated independently of samples of the block are stored in at least one buffer of prediction model parameter sets, and in order to obtain the prediction model parameter set for the block, the electronic circuit is further configured to select one of the multiple sets stored in at least one buffer of the prediction model parameter set.
[0083] In an embodiment, each set of prediction model parameters calculated independently of samples of the block is calculated for another block to which a cross-component coding tool is applied, or is calculated from samples of a set of blocks of a picture different from the set of blocks comprising the block.
[0084] In one embodiment, the electronic circuit system is further configured to determine when to calculate and store new prediction model parameters in response to a condition being satisfied regarding the frequency of updating the prediction model parameters of the cross-component coding tool, the condition being satisfied in response to a number of blocks decoded using the cross-component coding tool since the last calculation of the prediction model parameter set being higher than a value or in response to all blocks of a set of blocks of a picture having been decoded.
[0085] In one embodiment, to select one of the plurality of sets stored in at least one buffer of prediction model parameter sets, the electronic circuit system is further configured to:
[0086] selecting the set based on a comparison of at least one characteristic of the luma samples used for calculating each set of prediction model parameters with the same characteristic of the luma samples of the block, the at least one characteristic being a minimum and / or maximum value of the luma samples or a standard deviation of the luma samples or a mean value of the luma samples; or,
[0087] The sets are selected based on the spatial distance between samples of the block and samples used to estimate each set of prediction model parameters.
[0088] In one embodiment, each buffer is a circular buffer storing a finite number of prediction model parameter sets, and the most recently calculated prediction model parameter set replaces the oldest prediction model parameter set in the buffer.
[0089] In the seventeenth aspect, one or more of the present embodiments provides a signal comprising, for each chrominance component of at least a portion of a picture, information representing a phase value between samples of the chrominance component and samples of the luminance component of the picture, the phase value being taken from at least three different phase values for each chrominance component.
[0090] In an eighteenth aspect, one or more of the present embodiments provides a computer program comprising program code instructions for implementing one of the methods of aspects one to eight.
[0091] In a nineteenth aspect, one or more of the present embodiments provides a non-transitory information storage medium storing program code instructions for implementing one of the methods of the first to eighth aspects. BRIEF DESCRIPTION OF THE DRAWINGS
[0092] Figure 1 schematically illustrates the context in which the embodiments are implemented;
[0093] Figure 2 schematically illustrates an example of the partitioning that a picture of pixels of an original video undergoes;
[0094] Figure 3 A method for encoding a video stream is schematically depicted;
[0095] Figure 4 schematically depicts a method for decoding an encoded video stream;
[0096] Figure 5A schematically illustrates an example of a hardware architecture of a processing module capable of implementing an encoding module or a decoding module, in which various aspects and embodiments are implemented;
[0097] Figure 5B illustrates a block diagram of an example of a first system in which various aspects and embodiments are implemented;
[0098] Figure 5C illustrates a block diagram of an example of a second system in which various aspects and embodiments are implemented;
[0099] Fig. 6A The diagram shows the LM_Chroma CCLM mode;
[0100] Figure 6B The diagram shows the MDLM_T CCLM mode;
[0101] Figure 6C The diagram shows the MDLM_L CCLM mode;
[0102] Figure 7 illustrates a class for determining model parameters in the Multiple Model LM (MMLM) mode;
[0103] Figure 8 illustrates a 5-tap spatial filter component of a 7-tap convolutional filter used in CCCM mode;
[0104] Fig. 9 The diagram shows a reference region consisting of six rows / columns of chroma samples above and to the left of the CU used in CCCM mode;
[0105] Fig.10 The general process of CC coding tools (e.g., CCLM, MMLM, CCCM) is illustrated;
[0106] Fig.11 illustrates examples of chroma sample positions (chroma phase) relative to luma sample positions for different chroma formats;
[0107] Fig.12 The illustration shows the luma values realigned with the chroma samples;
[0108] Fig.13 illustrates a 13-tap spatial filter component of a 15-tap convolutional filter used in a modified CCCM mode according to an embodiment;
[0109] Fig.14A A first example of implementation of an embodiment showing improved flexibility in signaling chroma phase;
[0110] Fig. 14B A second example of implementation of the first embodiment showing improved flexibility in signaling chroma phase;
[0111] Fig.15 represents an example of an implementation of the third embodiment that allows control of the calculation frequency of the cross-component prediction model(s); and,
[0112] Fig.16 and 17 An embodiment is illustrated in which parameters of the cross-component prediction model(s) are updated in groups of blocks. DETAILED DESCRIPTION
[0113] The following examples of embodiments are described in the context of a video format similar to VVC (Versatile Video Coding (VVC) developed by a joint collaborative group of ITU-T and ISO / IEC experts, referred to as the Joint Video Experts Group (JVET)). However, these embodiments are not limited to video encoding / decoding methods corresponding to VVC. These embodiments are particularly applicable to various video formats, including (and derived from) for example HEVC (ISO / IEC 23008-2-MPEG-H Part 2, High Efficiency Video Coding / ITU-TH.265), AVC ((ISO / CEI 14496-10), EVC (Basic Video Coding / MPEG-5), AV1, AV2, and VP9.
[0114] Figure 1 The context in which the embodiments are implemented is schematically illustrated.
[0115] exist Figure 1 In the embodiment, system 11, which may be a camera, storage device, computer, server, or any device capable of delivering a video stream, transmits a video stream to system 13 using communication channel 12. The video stream is encoded and transmitted by system 11, or received and / or stored by system 11 and then transmitted. Communication channel 12 is a wired (e.g., Internet or Ethernet) or wireless (e.g., WiFi, 3G, 4G, or 5G) network link.
[0116] The system 13, which may be, for example, a set-top box, receives and decodes the video stream to generate a sequence of decoded pictures. Post-processing may be applied to the decoded pictures.
[0117] The obtained decoded picture sequence is then transmitted to a display system 15 using a communication channel 14, which may be a wired or wireless network. The display system 15 then displays the pictures.
[0118] In an embodiment, system 13 is included in display system 15. In this case, system 13 and display system 15 are included in a TV, a computer, a tablet computer, a smart phone, a head mounted display, or the like.
[0119] Figure 2 , 3 and 4 introduce examples of video formats.
[0120] Figure 2 An example of the partitioning that a picture of pixels 21 of an original video sequence 20 undergoes is illustrated. Here it is considered that a pixel consists of three components: a luminance component and two chrominance components. However, other types of pixels comprising fewer or more components are also possible, such as only a luminance component or an additional depth component or a transparency component.
[0121] The picture is divided into multiple coding entities. First, Figure 2 As indicated by reference numeral 23 in the figure, a picture is divided into a grid of blocks called coding tree units (CTUs). A CTU consists of an N×N block of luminance samples together with two corresponding blocks of chrominance samples. N is typically a power of two, for example with a maximum value of "128". Second, a picture is divided into one or more CTU groups. For example, it can be divided into one or more tile rows and tile columns, where a tile is a sequence of CTUs covering a rectangular area of a picture. In some cases, a tile can be divided into one or more bricks, each brick consisting of at least one row of CTUs within the tile. On top of the concepts of tiles and bricks, there is another coding entity, called a slice, which can contain at least one tile of a picture or at least one brick of a tile.
[0122] exist Figure 2 In the example in FIG. 2 , as indicated by reference numeral 22 , the picture 21 is divided into three slices S1 , S2 and S3 in a raster scan slice mode, each slice including a plurality of tiles (not shown), each tile including only one brick.
[0123] like Figure 2 As indicated by reference numeral 24 in FIG. 1 , a CTU may be partitioned into a hierarchical tree of one or more sub-blocks called coding units (CUs). A CTU is the root (i.e., the parent node) of the hierarchical tree and may be partitioned into multiple CUs (i.e., child nodes). If each CU is not further partitioned into smaller CUs, it becomes a leaf of the hierarchical tree, or if it is further partitioned, it becomes a parent node of a smaller CU (i.e., child node).
[0124] exist Figure 2 In the example of , CTU 24 is first partitioned into "4" square CUs using quadtree type partitioning. The top left CU is a leaf of the hierarchical tree because it is not further partitioned, i.e., it is not the parent of any other CU. Using quadtree type partitioning again, the top right CU is further partitioned into "4" smaller square CUs. The bottom right CU is vertically partitioned into "2" rectangular CUs using binary tree type partitioning. The bottom left CU is vertically partitioned into "3" rectangular CUs using ternary tree type partitioning.
[0125] During picture encoding, the partitioning is adaptive and each CTU is partitioned to optimize the compression efficiency of the CTU scale.
[0126] The concepts of prediction unit (PU) and transform unit (TU) appear in HEVC. In fact, in HEVC, the coding entity for prediction (i.e. PU) and the coding entity for transform (i.e. TU) can be a subdivision of CU. For example, Figure 2As shown in , a CU of size 2N×2N may be divided into PUs 2411 of size N×2N or size 2N×N. In addition, the CU may be divided into "4" TUs 2412 of size N×N or size 2N×N. The "16" TU.
[0127] One can notice that in VVC, except in some special cases, the boundaries (frontier) of TU and PU are aligned on the boundaries of CU. Therefore, a CU usually includes one TU and one PU.
[0128] In this application, the term "block" or "picture block" may be used to refer to any of CTU, CU, PU and TU. In addition, the term "block" or "picture block" may be used to refer to macroblocks, partitions and sub-blocks as specified in H.264 / AVC or other video coding standards, and more generally to arrays of samples of a large number of sizes.
[0129] In this application, the terms "reconstruction" and "decoding" may be used interchangeably, the terms "pixel" and "sample" may be used interchangeably, and the terms "image", "picture", "sub-picture", "slice" and "frame" may be used interchangeably. Typically, but not necessarily, the term "reconstruction" is used on the encoder side, while "decoding" is used on the decoder side.
[0130] Figure 3 The method for encoding a video stream performed by the encoding module is schematically depicted. Figure 3 The method of encoding is performed by system 11. Variations of this method for encoding are contemplated, but for purposes of clarity, the following describes the method for encoding. Figure 3 without describing all the expected variations.
[0131] Before being encoded, the current original picture of the original video sequence may be preprocessed. For example, in step 301, a color transform (e.g., a conversion from RGB 4:4:4 to YCbCr 4:2:0) is applied to the current original picture, or a remapping is applied to the current original picture components to obtain a signal distribution that is more resilient to compression (e.g., using a histogram equalization of one of the color components). The picture obtained by preprocessing is hereinafter referred to as a preprocessed picture.
[0132] As about Figure 2 As described, the encoding of the pre-processed picture starts with the partitioning of the pre-processed picture during step 302. The pre-processed picture is thus partitioned into CTUs, CUs, PUs, TUs, etc.
[0133] For each block, the encoding module then determines the coding mode between intra prediction and inter prediction.
[0134] Intra prediction consists in predicting the pixels of the current block from a prediction block derived from pixels of a reconstructed block located in the causal neighborhood of the current block to be coded according to an intra prediction method during a step 303. The result of the intra prediction is a prediction direction indicating which pixels of the neighborhood blocks are used, and a residual block resulting from the calculation of the difference between the current block and the predicted block.
[0135] The above-described general intra prediction applicable to intra prediction within one component (Y or Cb or Cr) has been recently enriched by several tools including intra prediction between components of different types.
[0136] For example, a cross component linear model (CCLM) prediction mode is proposed, for which the chrominance samples of a CU are predicted based on the reconstructed luminance samples of the same CU by using a cross component (CC) prediction model in the form of a linear model as follows:
[0137]
[0138] in Represents the chrominance component C in CU k The predicted chroma samples (for example, for YUV format C k =U or V), and rec L ′(i, j) represents the reconstructed luma sample that is finally downsampled according to the chroma format of the same CU. CCLM parameters are derived for each chroma component using the adjacent chroma sample set of the same chroma component and its corresponding luma sample (finally downsampled). and In some implementations, a subset (e.g., up to four) of adjacent chroma samples is used along with their corresponding luma samples. In addition, the location of adjacent samples can be signaled in the bitstream. For example, in VVC, there are three CCLM modes (LM_CHROMA, MDLM_T, MDLM_L) that differ with the location of adjacent chroma samples.
[0139] Fig. 6A Illustration of LM_Chroma CCLM mode.
[0140] Figure 6B The MDLM_T CCLM mode is illustrated.
[0141] Figure 6C The MDLM_L CCLM mode is illustrated.
[0142] The CCLM mode to use is encoded per CU.
[0143] Downsample and compare sets of adjacent brightness samples at the chosen position to find the smaller of the two values: x 0 A and x 1 A , and two larger values: x 0 B and x 1 B Their corresponding chrominance sample values are labeled y 0 A ,y 1 A ,y 0 B and 1 B Then Xa, Xb, Ya and yB are derived as follows:
[0144] X a =(x 0 A +x 1 A +1)>>1;X b =(x 0 B +x 1 B +1)>>1;
[0145] Y a =(y 0 A +、 1 A +1)>>1;Y b =(y 0 B +y 1 B +1)>>1 (Equation 2).
[0146] Finally, the linear model parameters and According to the following equation:
[0147]
[0148]
[0149] There are several variations of CCLM, where a) the location and / or number of neighboring samples are used to derive the model, b) the linear model parameters are derived ( Or the method of c) or c) the luminance downsampling filter may be different.
[0150] For example, in a variant called MMLM (for Multi-Model LM), there can be more than one linear model between luma samples and chroma samples in a CU. In this method, neighboring luma samples and neighboring chroma samples of the current block are classified into several groups, each of which is used as a training set to derive a linear model (i.e., a specific and is derived for a specific group). In addition, the samples of the current luma block are also classified based on the same rules used for classification of neighboring luma samples.
[0151] In some implementations of MMLM, such as described in the document K. Zhang, J. Chen, L. Zhang, M. Karczewicz, "Enhanced Cross-component Linear Model Intra-prediction", JVET-D0110, adjacent samples are classified into M groups, where M is "2" or "3". MMLM methods with M = 2 and M = 3 are designed as two additional CC prediction modes in addition to the original CCLM mode, named MMLM2 and MMLM3. The encoder selects the best mode in the RDO process and signals the mode.
[0152] When M is equal to "2", Figure 7 An example of classifying adjacent samples into two groups is shown. The threshold is calculated as the average of adjacent reconstructed brightness samples. L Neighboring samples with [x, y] <= threshold are classified into group "1"; and those with Rec' L Neighboring samples with [x, y]>threshold are classified into group "2".
[0153] In a variation of the CCLM called CCCM, the linear model of the CCLM is replaced by a CC prediction model in the form of an adaptive 7-tap convolutional filter. The 7-tap convolutional filter consists of a 5-tap spatial filter component, a nonlinear term P, and a bias term B. The input to the spatial 5-tap spatial filter component consists of downsampled luma samples, including a central luma sample C juxtaposed with the chroma samples to be predicted, a luma sample N above the central luma sample C, a luma sample S below the central luma sample C, a sample W to the left of the central luma sample C, and a sample E to the right of the central luma sample C, as shown in Figure 8 In some variations, some inputs may be local gradients (eg, replacing N with (WE), etc.), and bias and / or nonlinear terms may be removed.
[0154] The nonlinear term P is expressed as a power of two of the center luma sample C, and is scaled to the sample value range specified by the bit depth value bitdepth:
[0155] P = (C*C+midVal) >> bit depth
[0156] That is, for bit depth = 10:
[0157] P=(C*C+512)>>10.
[0158] The bias term B represents a scalar offset between input and output (similar to the offset term in CCLM) and is set to the intermediate chroma value (e.g., 512 for bit depth = 10).
[0159] Chroma component C k The predicted chroma samples (i.e. the output of the 7-tap convolution filter) are calculated as the filter coefficients The convolution between the input values (reconstructed luma samples C, N, S, E, W as well as the nonlinear term P and bias B) and clipped to the range of valid chroma samples:
[0160]
[0161] Filter coefficients It is computed by minimizing the MSE between the predicted and reconstructed chroma samples in the reference region. Fig. 9 The diagram shows a reference region consisting of six rows / columns of chroma samples above and to the left of the CU. The reference region extends one CU width to the right and one CU height below the CU boundary. The region is adjusted to include only available samples.
[0162] Procedure for deriving filter coefficients Much the same approach is followed as for deriving the ALF filter coefficients in ECM.
[0163] Fig.10 The general process of chroma prediction mode using a cross-component luminance model (e.g., CCLM, MMLM, CCCM) is depicted in FIG. Fig.10 The process is as follows: Figure 5A The processing modules described are similar to the processing modules executed.
[0164] In step 1010, the processing module selects reference samples (reconstructs luma and chroma sample values) from the neighborhood of the current CU. For example, CCCM uses six rows of reference samples above the current CU and six columns of reference samples to the left of the current CU.
[0165] In step 1015, the processing module filters the reconstructed luma sample values to obtain downsampled luma samples. Step 1015 is optional and is applied depending on the chroma format, ie when the chroma format is, for example, 4:2:2 or 4:2:0.
[0166] In step 1020, the processing module determines a threshold to classify the reference sample into at least two classes. Step 1020 is optional and is applied when multiple CC prediction models are used in the MMLM.
[0167] In step 1030, the processing module derives the parameters of the (multi-)CC prediction model (see coefficients ).
[0168] In step 1040, the processing module derives chroma sample prediction values from the concatenated (finally downsampled) reconstructed luma sample values using the CC prediction model(s).
[0169] As seen above, in some cases (i.e., depending on the chroma format), the luma sample values (concatenated with the chroma samples) are obtained from reconstructed luma samples downsampled using filtering. The downsampling filter is a function of the chroma sample position (chroma phase) relative to the luma sample position, such as Fig.11 as depicted in the example of . Fig.12 The luma values realigned with the chroma samples are illustrated. The chroma sample positions are signaled in the bitstream (eg in a sequence parameter set (SPS)) and also depend on the chroma format (4:4:4, 4:2:0 or 4:2:2).
[0170] The memory footprint and complexity of CC encoding tools (CCLM, MMLM, and CCCM) can be relatively high compared to other encoding tools:
[0171] The CC encoding tool reads some adjacent reconstructed luma samples, which may cause delays in the decoding pipeline. In addition, the amount of data read may be large, especially for CCCM.
[0172] The CC model (7×7 matrix inversion) and the prediction model apply heavy computation per sample (convolutional filters).
[0173] The CCCM computes the chroma prediction sample values from two consecutive filtering processes: the luma downsampling filter (1015) and the CC prediction model (1040). For CCLM, MMLM and CCCM, the luma downsampling filter coefficients are a function of a flag "collocated chroma sample flag" that indicates whether the chroma samples are collocated or centered relative to the luma samples. However, on the one hand, it turns out that the actual chroma phase shift (which controls the luma downsampling filter coefficients) may be content-dependent (sequence or picture) or may vary locally. This may happen, for example, when a sequence undergoes poor preprocessing, causing poor chroma phase shifts. On the other hand, the CC model parameters may be the same for several CUs or within a region / picture of a sequence.
[0174] Inter prediction consists in predicting the pixels of the current block from a block of pixels of a picture before or after the current picture, called a reference block, which picture is called a reference picture. During the encoding of the current block according to the inter prediction method, the block of the reference picture that is closest to the current block according to a similarity criterion is determined by a motion estimation step 304. During step 304, a motion vector indicating the position of the reference block in the reference picture is determined. The motion vector is used during a motion compensation step 305, during which a residual block is calculated in the form of a difference between the current block and the reference block. In the first video compression standard, the above-mentioned unidirectional inter prediction mode was the only inter mode available. As video compression standards have evolved, the inter mode family has grown significantly and now includes many different inter modes.
[0175] During a selection step 306 , the encoding module selects, among the tested prediction modes (intra-prediction mode, inter-prediction mode), the prediction mode that optimizes the compression performance according to the rate / distortion optimization criterion (ie, the RDO standard).
[0176] When a prediction mode is selected, the residual block is transformed during a step 307. The transformed block is then quantized during a step 309.
[0177] Note that the encoding module can skip the transform and apply quantization directly to the untransformed residual signal. When the current block is encoded according to an intra-frame prediction mode, during step 310, the entropy encoder encodes the prediction direction and the transformed and quantized residual block. When the current block is encoded according to an inter-frame prediction, when appropriate, the motion vector of the block is predicted according to a prediction vector selected from a set of motion vector predictors, which is derived from a reconstructed block located in spatial and temporal proximity to the block to be encoded. Next, during step 310, the entropy encoder encodes the motion information in the form of a motion residual and an index for identifying the prediction vector. During step 310, the entropy encoder encodes the transformed and quantized residual block.
[0178] Note that the encoding module can bypass both transform and quantization, ie entropy encoding is applied to the residual without applying a transform or quantization process. The result of the entropy encoding is inserted into the encoded video stream 311 .
[0179] Metadata such as SEI (Supplemental Enhancement Information) messages may be appended to the coded video stream 311. A SEI message, for example defined in a standard such as AVC, HEVC or VVC (or in the standard Generic Supplemental Enhancement Information (VSEI) message for coded video bitstreams - H.274), is a data container or syntax structure that is associated with a video stream and includes metadata that provides information relative to the video stream.
[0180] After the quantization step 309, the current block is reconstructed so that the pixels corresponding to the block can be used for future predictions. This reconstruction phase is also called a prediction loop. Therefore, during step 312, inverse quantization is applied to the transformed and quantized residual block, and an inverse transform is applied during step 313. According to the prediction mode for the block obtained during step 314, the prediction block of the block is reconstructed. If the current block is encoded according to the inter-frame prediction mode, during step 316, the encoding module uses the motion vector of the current block to apply motion compensation when appropriate in order to identify the reference block of the current block. If the current block is encoded according to the intra-frame prediction mode, during step 315, the prediction direction corresponding to the current block is used to reconstruct the prediction block of the current block. The prediction block and the reconstructed residual block are added to obtain the reconstructed current block.
[0181] After reconstruction, during step 317, in-loop filtering aimed at reducing coding artifacts is applied to the reconstructed blocks. This filtering is called in-loop filtering because it occurs in the prediction loop in order to obtain the same reference pictures at the decoder as at the encoder and thus avoid drift between the encoding and decoding processes. In-loop filtering tools include deblocking filtering, SAO (Sample Adaptive Offset) and ALF (Adaptive Loop Filtering).
[0182] When the block is reconstructed, it is inserted into a reconstructed picture stored in a memory of reconstructed pictures 319, generally called a decoded picture buffer (DPB), during a step 318. The reconstructed picture thus stored can then be used as a reference picture for other pictures to be encoded.
[0183] Figure 4 Schematically depicts the steps performed by the decoding module for Figure 3 The method described herein is a method for decoding an encoded video stream 311. For example, Figure 4 The method of decoding is performed by system 13. Variations of this method for decoding are envisioned, but for the sake of clarity, the method for decoding is described below. Figure 4 The present invention provides a method for decoding the same without describing all the expected variations.
[0184] The decoding is done block by block. For the current block, it starts with entropy decoding of the current block during a step 410. Entropy decoding allows obtaining at least the prediction mode of the block.
[0185] If the block has been coded according to inter prediction mode, entropy decoding allows obtaining the prediction vector index, the motion residual and the residual block when appropriate.During a step 408, the motion vector is reconstructed for the current block using the prediction vector index and the motion residual.
[0186] If the block has been coded according to an intra prediction mode, entropy decoding allows obtaining the prediction direction and the residual block.Steps 412, 413, 414, 415, 416 and 417 implemented by the decoding module are identical in all respects to steps 312, 313, 314, 315, 316 and 317 respectively implemented by the encoding module.
[0187] In step 418, the decoded blocks are saved in a decoded picture, and the decoded picture is stored in the DPB 419. When the decoding module decodes a given picture, the picture stored in the DPB 419 is the same as the picture stored in the DPB 319 by the encoding module during encoding of the given picture. The decoded picture may also be output by the decoding module, for example, to be displayed.
[0188] After in-loop filtering (ie, after decoded picture generation), a post-processing step 421 may be applied.
[0189] Figure 5A , 5B 5C describe examples of devices, apparatuses and / or systems that allow implementation of various embodiments.
[0190] Figure 5A Schematically illustrates an example of a hardware architecture of a processing module 500 capable of implementing an encoding module or a decoding module, wherein the encoding module or the decoding module can respectively implement a method for performing operations modified according to different aspects and embodiments. Figure 3 The encoding method and the Figure 4 For example, when system 11 is responsible for encoding the video stream, the encoding module is included in the system. The decoding module is included in system 13, for example.
[0191] The processing module 500 includes: a processor or CPU (central processing unit) 5000 connected by a communication bus 5005, as a non-limiting example, including one or more microprocessors, general-purpose computers, special-purpose computers and processors based on multi-core architecture; a random access memory (RAM) 5001; a read-only memory (ROM) 5002; a storage unit 5003, which 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, disk drive and / or optical drive, or storage medium reader, such as SD (Secure Digital) card reader and / or hard disk drive (HDD) and / or network accessible storage device; at least one communication interface 5004 for exchanging data with other modules, devices or systems. The communication interface 5004 may include but is not limited to a transceiver configured to transmit and receive data through a communication channel. The communication interface 5004 may include, but is not limited to, a modem or a network card.
[0192] If the processing module 500 implements a decoding module, the communication interface 5004 enables, for example, the processing module 500 to receive a coded video stream and provide a decoded picture sequence. If the processing module 500 implements an encoding module, the communication interface 5004 enables, for example, the processing module 500 to receive a raw picture data sequence for encoding and provide a coded video stream.
[0193] The processor 5000 can execute instructions loaded into the RAM 5001 from the ROM 5002, from an external memory (not shown), from a storage medium, or from a communication network. When the processing module 500 is powered on, the processor 5000 can read the instructions from the RAM 5001 and execute them. These instructions form a computer program that enables the processor 5000 to implement, for example, Figure 4 Decoding methods described and / or Figure 3 The encoding method described, and Figures 13 to 17 Illustrated methods include various aspects and embodiments described below in this document.
[0194] Figure 3 , 4 All or some of the algorithms and steps of the methods 13-17 may be implemented in software by executing instruction sets by a programmable machine such as a DSP (digital signal processor) or a microcontroller, or in hardware by a machine or dedicated components such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
[0195] As can be seen, microprocessors, general purpose computers, special purpose computers, processors based on or not based on multi-core architectures, DSPs, microcontrollers, FPGAs, and ASICs are suitable or configured to at least partially implement Figure 3 , 4 , electronic circuit system of the method of 13-17.
[0196] Figure 5C A block diagram of an example of a system 13 in which various aspects and embodiments are implemented is illustrated. System 13 may be embodied as a device including the various components described below, and is configured to perform one or more aspects and embodiments 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 head-mounted displays. The elements of system 13 may be embodied in a single integrated circuit (IC), multiple ICs, and / or discrete components, either alone or in combination. For example, in at least one embodiment, system 13 includes a processing module 500 that implements a decoding module. In various embodiments, system 13 is communicatively coupled to one or more other systems or other electronic devices via, for example, a communication bus or through dedicated input and / or output ports. In various embodiments, system 13 is configured to implement one or more aspects described in this document.
[0197] As indicated in block 531, input may be provided to the processing module 500 through various input modules. Such input modules include, but are not limited to, (i) a radio frequency (RF) module that receives an RF signal transmitted over the air, for example, by a broadcaster, (ii) a component (COMP) input module (or a set of COMP input modules), (iii) a universal serial bus (USB) input module, and / or (iv) a high-definition multimedia interface (HDMI) input module. Figure 5C Other examples not shown include composite video.
[0198] In various embodiments, the input module of frame 531 has associated corresponding input processing elements, as known in the art. For example, the RF module can be associated with an element suitable for the following: (i) selecting a desired frequency (also referred to as selecting a signal, or limiting the signal band to a band), (ii) down-converting the selected signal, (iii) again band-limiting a narrower frequency band to select a signal band that can be referred to as a channel in certain embodiments, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired data packet stream. The RF module of various embodiments includes one or more elements for performing these functions, for example, 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 part can include a tuner that performs various of these functions, and the various functions include, for example, down-converting a received signal to a lower frequency (for example, an intermediate frequency or a near-baseband frequency) or a baseband. In a set-top box embodiment, RF module and its associated input processing element receive the RF signal transmitted by wired (for example, cable) medium, and filter to the frequency band of expectation again by filtering, down-conversion and perform frequency selection.Various embodiments rearrange the order of above-mentioned (and other) elements, remove some in these elements, and / or add other elements of performing similar or different functions.Adding element can include inserting element between existing element, such as for example inserting amplifier and analog-to-digital converter.In various embodiments, RF module comprises antenna.
[0199] In addition, the USB and / or HDMI modules may include corresponding interface processors for connecting the system 13 to other electronic devices across the USB and / or HDMI connections. It will be appreciated 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 the processing module 500, as desired. Similarly, various aspects of USB or HDMI interface processing may be implemented within a separate interface IC or within the processing module 500, as desired. The demodulated, error corrected, and demultiplexed stream is provided to the processing module 500.
[0200] The various elements of the system 13 may be provided within an integrated housing. Within the integrated housing, the various elements may be interconnected and data may be transmitted between them using suitable connection means, such as internal buses as known in the art, including inter-IC (I2C) buses, wiring, and printed circuit boards. For example, in the system 13, the processing module 500 is interconnected with the other elements of the system 13 via the bus 5005.
[0201] The communication interface 5004 of the processing module 500 allows the system 13 to communicate on the communication channel 12. As already mentioned above, the communication channel 12 may be implemented within, for example, a wired and / or wireless medium.
[0202] In various embodiments, data is streamed or otherwise provided to the system 13 using a wireless network such as a Wi-Fi network, for example IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). The Wi-Fi signals of these embodiments are received via a communication channel 12 and a communication interface 5004 suitable for Wi-Fi communications. The communication channel 12 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-top communications. Other embodiments use the RF connection of the input block 531 to provide streaming data to the system 13. As indicated above, various embodiments provide data in a non-streaming manner. Additionally, various embodiments use wireless networks other than Wi-Fi, such as a cellular network or a Bluetooth network.
[0203] The system 13 can provide output signals to various output devices, including a display system 15, a speaker 535, and other peripherals 536. The display system 15 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 system 15 can be used for a television, a tablet computer, a laptop computer, a phone (mobile phone), a head-mounted display, or other devices. The display system 15 can also be integrated with other components (for example, in a smart phone), or it can be independent (for example, an external monitor for a laptop computer). In various examples of embodiments, other peripherals 536 include one or more of an independent digital video disk (or digital versatile disk) (DVR, two terms), a disk player, a stereo system, and / or a lighting system. Various embodiments use one or more peripherals 536 that provide functions based on the output of the system 13. For example, a disk player performs the function of playing the output of the system 13.
[0204] In various embodiments, control signals are communicated between system 13 and display system 15, speakers 535, or other peripherals 536 using signaling such as AV.Link, Consumer Electronics Control (CEC), or other communication protocols that enable device-to-device control with or without user intervention. Output devices may be communicatively coupled to system 13 via dedicated connections through respective interfaces 532, 533, and 534. Alternatively, output devices may be communicated using communication channel 12 via communication interface 5004 or using a communication interface corresponding to a display device 15, speaker 535, or other peripheral device 536. Figure 5CThe display interface 532 is connected to the system 13 through a dedicated communication channel of the communication channel 12 in the display interface 532. The display system 15 and the speaker 535 can be integrated into a single unit with other components of the system 13 in an electronic device (such as, for example, a television). In various embodiments, the display interface 532 includes a display driver, such as, for example, a timing controller (T Con) chip.
[0205] Alternatively, the display system 15 and the speaker 535 may be separate from one or more other components. In various embodiments where the display system 15 and the speaker 535 are external components, the output signal may be provided via a dedicated output connection including, for example, an HDMI port, a USB port, or a COMP output.
[0206] Figure 5B A block diagram of an example of a system 11 in which various aspects and embodiments are implemented is illustrated. System 11 is very similar to system 13. System 11 can be embodied as a device including various components described below, and is configured to perform one or more aspects and embodiments 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, cameras, and servers. The elements of system 11 can be embodied in a single integrated circuit (IC), multiple ICs, and / or discrete components, either alone or in combination. For example, in at least one embodiment, system 11 includes a processing module 500 that implements a coding module. In various embodiments, system 11 is communicatively coupled to one or more other systems or other electronic devices via, for example, a communication bus or through dedicated input and / or output ports. In various embodiments, system 11 is configured to implement one or more aspects described in this document.
[0207] Input to the processing module 500 may be provided by various input modules, as already described with respect to Figure 5C As indicated in box 531 of the description.
[0208] The various elements of the system 11 may be provided within an integrated housing. Within the integrated housing, the various elements may be interconnected and data may be transmitted between them using suitable connection means, such as internal buses as known in the art, including inter-IC (I2C) buses, wiring, and printed circuit boards. For example, in the system 11, the processing module 500 is interconnected with the other elements of the system 11 via the bus 5005.
[0209] The communication interface 5004 of the processing module 500 allows the system 11 to communicate over the communication channel 12 .
[0210] In various embodiments, data is streamed or otherwise provided to the system 11 using a wireless network such as a Wi-Fi network, for example IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). The Wi-Fi signals of these embodiments are received through a communication channel 12 and a communication interface 5004 suitable for Wi-Fi communications. The communication channel 12 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-top communications. Other embodiments use the RF connection of the input block 531 to provide streaming data to the system 11.
[0211] 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.
[0212] The data provided to the system 11 may be provided in different formats. In various embodiments, these data are encoded and conform to known video compression formats such as AV1, VP9, VVC, HEVC, AVC, etc. In various embodiments, these data are raw data provided, for example, by a picture and / or audio acquisition module connected to or included in the system 11. In this case, the processing module 500 is responsible for the encoding of these data.
[0213] System 11 may provide output signals to various output devices, such as system 13, which may be capable of storing and / or decoding the output signals.
[0214] Various implementations involve decoding. "Decoding" as used in this application may include, for example, all or part of the processing performed on a received encoded video stream to produce a final output suitable for display. In various embodiments, such a process includes one or more processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and prediction. In various embodiments, such a process also or alternatively includes a process performed by a decoder of the various implementations described in this application, for example, for applying a CC coding tool (e.g., CCLM, MMLM, CCCM, or any modified version of these coding tools described in this document).
[0215] Whether the phrase "decoding process" is intended to refer specifically to a subset of operations or generally to a broader decoding process will be clear based on the context of the specific description and is considered to be well understood by those skilled in the art.
[0216] Various implementations involve encoding. In a manner similar to the discussion above about "decoding", "encoding" as used in this application may include, for example, all or part of the processes performed on an input video sequence to produce an encoded video stream. In various embodiments, such processes include one or more processes typically performed by an encoder, such as partitioning, prediction, transform, quantization, and entropy coding. In various embodiments, such processes also or alternatively include processes performed by encoders of various implementations described in this application, for example, for applying CC encoding tools (e.g., CCLM, MMLM, CCCM, or any modified versions of these encoding tools described in this document).
[0217] Whether the phrase "encoding process" is intended to refer specifically to a subset of operations or generally to a broader encoding process will be clear based on the context of the specific description and is considered to be well understood by those skilled in the art.
[0218] Note that the syntax element names as used herein are descriptive terms. As such, they do not exclude the use of other syntax element names.
[0219] When a figure is presented as a flow chart, 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 flow chart of the corresponding method / process.
[0220] Various embodiments relate to rate-distortion optimization. In particular, during the encoding process, a balance or trade-off between rate and distortion is generally considered. Rate-distortion optimization is generally formulated as minimizing a rate-distortion function, which is a weighted sum of rate and distortion. There are different methods to solve the rate-distortion optimization problem. For example, the method can be based on extensive testing of all coding options, including all considered modes or coding parameter values, using a complete evaluation of their coding costs and the associated distortion of the reconstructed signal after encoding and decoding. Faster methods can also be used to save coding complexity, in particular, calculating approximate distortion based on prediction or prediction residual signals rather than reconstructed signals. A mixture of these two methods can also be used, such as by using approximate distortion only for some possible coding options and using full distortion for other coding options. Other methods only evaluate a subset of possible coding options. More generally, many methods use any of a variety of techniques to perform optimization, but optimization is not necessarily a complete evaluation of both coding costs and associated distortions.
[0221] The implementations and aspects described herein can be implemented in, for example, methods or processes, devices, software programs, data streams, or signals. Even if only discussed in the context of a single implementation form (e.g., discussed only as a method), the implementation of the features discussed can also be implemented in other forms (e.g., devices or programs). The device can be implemented in, for example, appropriate hardware, software, and firmware. The method can be implemented in, for example, a processor, which generally refers to a processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. The 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 information communication between end users.
[0222] References to "one embodiment" or "an embodiment" or "one implementation" or "an implementation" and other variations thereof mean that a particular feature, structure, characteristic, etc. described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrase "in one embodiment" or "in an embodiment" or "in an implementation" or "in an implementation" and any other variations appearing in various places throughout this application are not necessarily all referring to the same embodiment.
[0223] Additionally, the present application may refer to "determining" various pieces of information. Determining information may include, for example, estimating information, calculating information, predicting information, retrieving information from a memory, or obtaining information, for example, from another device, module, or from a user.
[0224] Additionally, this application may refer to "accessing" various pieces of 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.
[0225] Additionally, the present application may refer to "receiving" various pieces of information. Like "accessing," receiving is intended to be a broad term. Receiving information may include, for example, one or more of accessing information or retrieving information (e.g., from a memory). Furthermore, during operations such as, for example, storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information, "receiving" is generally involved in one way or another.
[0226] It will be appreciated that with any of the following " / ", "and / or", and "at least one of", "one or more of", for example, in the case of "A / B", "A and / or B", and "at least one of A and B", "one or more of A and B" is intended to include selecting only the first listed option (A), or only the second listed option (B), or selecting 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", "one or more of A, B, and C", such wording is intended to include selecting 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 all three options (A and B and C). As will be apparent to one of ordinary skill in this and related arts, this can be extended to as many items as listed.
[0227] In addition, as used herein, the word "signal" refers to, among other things, a corresponding decoder indicating something. For example, in some embodiments, the encoder signals some encoding tools to use. In this way, in one embodiment, the same parameters can be used at both the encoder side and the decoder side. Therefore, for example, the encoder can transmit (explicit signaling) specific parameters to the decoder so that the decoder can use the same specific parameters. On the contrary, if the decoder already has specific parameters and other parameters, signaling can be used without transmission (implicit signaling) to simply allow the decoder to know and select specific parameters. By avoiding the transmission of any actual function, bit saving is achieved in various embodiments. It will be appreciated that signaling can be implemented in a variety of ways. For example, in various embodiments, one or more grammatical elements, flags, etc. are used to send information to the corresponding decoder. Although the verb form of the word "signal" is mentioned above, the word "signal" can also be used as a noun in this article.
[0228] As will be clear to one of ordinary skill in the art, implementations may generate a variety of signals formatted to carry information that can 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 implementations. For example, a signal may include a signal indicating how to apply a CC encoding tool. Such a signal may be formatted as, for example, an electromagnetic wave (e.g., using a radio frequency portion of a spectrum) or a baseband signal. Formatting may include, for example, encoding a coded video stream and modulating a carrier with the coded video stream. The information carried by the signal may be, for example, analog or digital information. As is known, the signal may be transmitted over a variety of different wired or wireless links. The signal may be stored on a processor-readable medium.
[0229] Various embodiments of the CC encoding tool are presented below.
[0230] The first embodiment improves the flexibility of signaling chroma phase, which is particularly interesting for CC coding tools.
[0231] In non-4:4:4 chroma formats (e.g., 4:2:0 or 4:2:2), recent CC coding tools (e.g., CCLM, MMLM, and CCCM) apply CC prediction models to downsampled luma values. These downsampled luma values are obtained using a luma downsampling filter, as described in Fig.10 1015 in step 1016. In some implementations, two sets of luma downsampling filter coefficients may be used. The set is selected according to a flag "collocated chroma sample flag" that indicates whether the chroma samples are collocated or centered relative to the luma samples. This flag is signaled in the SPS. If the flag is equal to "1", the chroma samples are collocated with the luma samples, and the position of the chroma samples relative to the luma samples is (0; 0) in the luma grid. If the flag is equal to "0", the chroma samples are centered between the luma samples, and the position of the chroma samples relative to the luma samples is (0, 5; 0, 5).
[0232] In this first embodiment, it is proposed to increase the flexibility of the CC coding tool by allowing to signal the chroma sample positions (i.e. chroma phase) relative to the luma sample positions in addition to juxtaposition and centering. In fact, given the wide variety of ways of generating video content, it may happen that the chroma planes are shifted in different ways relative to the luma planes.
[0233] Advantageously, the chroma samples may be shifted by more than "1" in the luma sample grid. The position of the chroma samples in the luma grid may be, for example, (-1; 2) or (0, 5; -1, 5). Each chroma sample position (i.e., chroma phase) (e.g., (0; 0), (0, 5; 0, 5), (-1; 2), and (0, 5; -1, 5)) is associated with a luma downsampling filter coefficient set (i.e., with a luma downsampling filter set).
[0234] In a variant, the chroma phase may be different for each chroma (Cb or Cr) component. In this case, two chroma phases are signaled, one for each chroma component, and a set of luma downsampling filter coefficients is associated with each chroma phase.
[0235] Thus, a first embodiment comprises, for each chroma component of at least a portion of a picture, signaling information representing a phase value taken from among at least three different phase values for each chroma component. All chroma components may share the same information representing the phase value, or each chroma component may be associated with different information representing the phase value. Each phase value may be associated with a set of luma downsampling filter coefficients (i.e., associated with a luma downsampling filter set).
[0236]
[0237] Table TAB1
[0238] Table TAB1 provides an example of SPS syntax, which allows signaling more than two chroma sample positions (chroma phases) relative to luma sample positions. In Table TAB1, the flag sps-extended_phase is transmitted. When true, two syntax elements (sps_chroma_horizontal_phase and sps_chroma_vertical_phase) representing the chroma phase values are added.
[0239]
[0240] Table TAB2
[0241] In table TAB2, the syntax element sps_num_phase specifies a number of different phases to be added to the collocated and centered phases indicated by the flags sps_chroma_horizontal_collocated_flag and sps_chroma_vertical_collocated_flag. sps_chroma_horizontal_phase_Chroma1[i] and sps_chroma_horizontal_phase_Chroma2[i] specify the horizontal phase for the first chroma component (e.g. Cb or U) and the second chroma component (e.g. Cr or V), respectively. sps_chroma_vertical_phase_Chroma1[i] and sps_chroma_vertical_phase_Chroma2[i] specify the vertical phase for the first chroma component and the second chroma component, respectively.
[0242] In tables TAB1 and TAB2, each sequence (eg in SPS) signals a chroma phase.
[0243] When a block, block group or region refers to one of the phases signaled in the SPS, the block, block group or region refers to an index indicating which phase is used for the block, block group or region. For example, the juxtaposed phase is associated with the index "0", the centered phase is associated with the index "1", and the next phase is associated with the index "2+i", where i in [0; sps_num_phase[ is the phase number in the sps. The index of the phase is signaled, for example, in a picture header or in a slice header for multiple blocks. In a variant, the phase index is signaled as a CTU-level syntax element.
[0244] Fig.14A A first example of implementation of the first embodiment is shown.
[0245] Fig.14A The process is performed, for example, by the processing module 500 of the system 11. In this case, the processing module 500 of the system 11 implements the encoding module, which implements Figure 3 The encoding method.
[0246] In step 1401 , the processing module 500 of the system 11 obtains an original video stream.
[0247] In step 1402, the processing module 500 of the system 11 obtains information representing the chroma phase of the original video stream, for example, by analyzing the original video stream. The determined chroma phase information may be a chroma phase value for all chroma components, or a chroma phase value for each chroma component.
[0248] In step 1403, the processing module 500 uses Figure 3 The method encodes the original video stream in the coded video stream 311. The intra-frame prediction step 303 includes some CC coding tools, such as CCLM, MMLM or CCCM. At least one block of the picture of the original video stream is encoded using the CC coding tool. During the encoding of the block using the CC coding tool, the chroma phase is considered for downsampling the reconstructed luminance sample (step 1015). In addition, the modified SPS of table TAB1 or table TAB2 is signaled in the coded video stream 311, and the chroma phase information determined in step 1402 is signaled.
[0249] In a variation of step 1403, chroma phase information is signaled per picture (eg, in a picture parameter set (PPS)) or per region (eg, in a slice / picture header).
[0250] In another variation of the first embodiment, the chroma samples are realigned with the luma samples using the determined chroma phase information during the pre-processing step 301. In this way, one can use a simplified CC prediction model. In fact, the shape of the convolution filter (e.g., the number of taps) can be reduced if the chroma samples are correctly realigned with the luma samples.
[0251] In yet another variation of step 1403 , the coefficients of each downsampling filter are explicitly signaled in the coded video stream 311 , for example in a SEI message dedicated for the transmission of information of the downsampling filters or in a picture header.
[0252] Fig. 14B A second example of implementation of the first embodiment is shown.
[0253] Fig. 14B The process is performed, for example, by the processing module 500 of the system 13. In this case, the processing module 500 of the system 13 implements a decoding module, which implements Figure 4 Decoding method.
[0254] In step 1411, the processing module 500 of the system 13 receives the encoded video stream 311. The encoded video stream 311 comprises a modified SPS of the table TAB1 with chroma phase information.
[0255] In step 1412, the processing module 500 of the system 13 applies Figure 4 The decoding method of the system 13 is used to decode the encoded video stream 311. During the decoding of the stream 311, the processing module 500 of the system 11 parses (ie decodes) the modified SPS including the chroma phase information. When the CC encoding tool is used to encode the block, the processing module 500 of the system 13 uses the chroma phase information during the luma downsampling step 1015.
[0256] In a variation of step 1412, the chroma phase information is parsed (ie decoded) from the PPS or from the picture header or from the slice header.
[0257] In another variation of step 1412, when the chroma samples are realigned with the luma samples using the chroma phase information during the pre-processing step 301, the chroma samples are shifted back to their original positions (with an inversion of the signaled chroma phase information) for display during the post-processing step 421.
[0258] In yet another variation of step 1412 , when the coefficients of each downsampling filter are signaled in the encoded video stream 311 , eg in a SEI message, the SEI message containing the signaled coefficients is decoded, eg before starting decoding of the encoded video stream 311 .
[0259] In a second embodiment, luma downsampling is not applied and cross-component prediction uses reconstructed luma samples at their original sampling resolution.
[0260] In the current CC coding tool implementation, when applied to 4:2:2 or 4:2:0 content, luma samples are downsampled to have the same phase and sampling resolution as chroma samples (i.e., luma samples are realigned with chroma samples). Downsampling implies information loss, as several original luma samples are represented by a single downsampled luma sample. This may reduce the efficiency of CC prediction.
[0261] The second embodiment is a modified version of CCCM in which the luma downsampling step 1015 is removed. Advantageously, the adaptive 7-tap convolution filter can be replaced by a 15-tap convolution filter. The derivation of the 15-tap convolution filter coefficients uses the reconstructed luma samples without downsampling. In this example, the 5-tap spatial filter component is replaced by Fig.13 The 13-tap spatial filter component shown in is replaced. New luma samples NN, NE, EE, SE, SS, SW, WW, and NW are added to samples C, N, E, S, and W. The output of the 15-tap convolution filter is calculated as the filter coefficients c i The convolution between the reconstructed luma sample values at their original sampling resolution, regardless of the chroma format, and clipped to the range of valid chroma samples:
[0262] predChromaVal=c0C+c1N+c2S+c3E+c4W+c5P+c6B+c7NN+c8NW+c9NE+c 10 WW+c 11 EE+c 12 SW+c 13 SE+c 14SS (Equation 6)
[0263] As can be seen, when the modified CCCM mode is applied to a block, a 15-tap convolutional filter is applied to the reconstructed luma samples of the block at its original sampling resolution to obtain a predictor for the chroma samples of the block, the convolutional filter being independent of the chroma format of the block.
[0264] Used to calculate the filter coefficient c i The method is the same as that used to calculate the filter coefficients for CCCM.
[0265] In a third embodiment, the calculation frequency of the CC prediction model(s) is controlled.
[0266] As mentioned above and in passing, the memory footprint and complexity of CC coding tools (eg, CCLM, MMLM, and CCCM) are considered to be relatively high compared to other coding tools.
[0267] To address these obstacles, one can reduce the frequency of calculating (one or more) CC prediction model parameters. For example, one can reuse a set of CC prediction model parameters previously calculated for CUs near the current CU to apply it to the current CU.
[0268] In a third embodiment, the CC prediction model parameters are stored after derivation for further reuse.
[0269] Fig.15 An example of implementation of the third embodiment is shown.
[0270] Fig.15 The process described in the above is performed by the processing module 500 of the system 11 or the processing module 500 of the system 13. Again, the processing module 500 of the system 11 implements Figure 3 The coding module of the method and the processing module 500 of the system 13 implement Figure 4 The decoding module of the method.
[0271] In step 1501, the processing module 500 uses the CC coding tool to obtain a current block to be coded (coding module) or already coded (decoding module).
[0272] In step 1502, the processing module 500 determines whether a new CC prediction model parameter set should be determined for the current block, or whether a stored CC prediction model parameter set is to be calculated for the current block. In an embodiment of step 1502, the processing module 500 determines the number of blocks encoded using the CC encoding tool since the last calculation of the new CC prediction model parameter set. If the number of blocks encoded since the last determination of the new CC prediction model parameter set is above a threshold, the processing module 500 determines that a new CC prediction model parameter set is to be determined for the current block. In this case, step 1502 is followed by step 1503. Otherwise, step 1502 is followed by step 1506. Comparing the number of blocks encoded since the last calculation of the new CC prediction model parameter set with the threshold allows controlling the frequency of updating the CC prediction model parameters. In a variation of step 1502, the CC model is updated per region, and the decision to update the CC model depends on the position of the CU in the picture.
[0273] In step 1503, the processing module 500 calculates a new CC prediction model parameter set for the current block. Step 1503 corresponds to steps 1010, 1015, 1020 and 1030 that have been explained.
[0274] In step 1504, the processing module 500 encodes the current block by applying a CC prediction tool that predicts chrominance samples using a CC prediction model based on a calculated set of CC prediction model parameters and a reconstructed luma sample of the current block. Step 1504 corresponds to step 1040 already explained.
[0275] In step 1505, the processing module 500 stores the CC prediction model parameter set calculated in step 1503 for further use. In one embodiment, the processing module 500 stores one CC prediction model parameter set at a time. In other words, each time a new CC prediction model parameter set is calculated, the set replaces the previously stored CC prediction model parameter set.
[0276] In step 1506 , the processing module 500 obtains a CC prediction model parameter set for the current block from a CC prediction model parameter set calculated for another block encoded using the same CC encoding tool and stored in step 1505 .
[0277] In step 1507, the processing module 500 encodes the current block by applying the CC prediction tool based on the CC prediction model parameter set obtained in step 1506 and the reconstructed luma samples of the current block to predict the chroma samples. Thus, the CC model parameter set for applying the CC coding tool to the current block is calculated independently of the samples of the current block. Step 1504 corresponds to step 1040, which has already been explained.
[0278] Steps 1505 and 1506 are followed by step 1501 for processing the next block.
[0279] In one embodiment, in step 1505, the processing module 500 stores the newly calculated CC prediction model parameters in a circular buffer including a plurality of CC prediction model parameter sets, rather than systematically replacing the stored CC prediction model parameters with the newly calculated CC prediction model parameters. The plurality includes N CC prediction model parameter sets. The processing module 500 replaces the oldest CC prediction model parameter set in the circular buffer with the newly calculated CC prediction model parameters. Each CC prediction model parameter set is associated with an index. In this embodiment, in step 1506, the processing module 500 selects one of the N indexes. In one variation, the selection of the index is based on a range of reference luminance samples used to derive the CC prediction model parameters. For example, the process for selecting the index includes
[0280] ● for each of the N indices of the CC prediction model parameter set, obtaining at least one characteristic of a reference luma sample used to derive the CC prediction model parameter;
[0281] ● comparing at least one characteristic obtained for each index with the same characteristic of luma samples of the current block;
[0282] • Select the index for which the obtained at least one characteristic is closest to the same characteristic of the luma samples of the current block.
[0283] The at least one characteristic is, for example, the minimum / maximum value of the reference luma samples and the luma samples of the current block, the standard deviation of the reference luma samples and the luma samples of the current block, the average value of the reference luma samples and the luma samples of the current block. In another variant, the index selected by the encoding module in step 1506 is signaled at the block level in the encoded video stream 311. In this case, step 1506, when performed by the decoding module, includes reading the signaled index to determine which stored CC model parameter set is to be used for the current block.
[0284] In one embodiment, a block group is defined in each picture, and the CC prediction model parameters are updated only after reconstruction of each block of the block group. In one embodiment, the block group corresponds to a CTU or a CTU group. In a variant, each block group is defined based on an update frequency F (or period P) for updating (one or more) CC prediction model parameters. For example, the CC prediction model parameters are updated every "4" CTUs.
[0285] Fig.16 and 17 An embodiment is illustrated in which CC prediction model parameters are updated per block group.
[0286] Fig.17Four block groups of pictures GR1, GR2, GR3 and GR4 are illustrated. GR1, GR2 and GR3 are reconstructed. GR4 is a block group including blocks to be encoded. In this example, block group GR4 includes three blocks CU1, CU2 and CU3.
[0287] Fig.16 The process described in the above is performed by the processing module 500 of the system 11 or the processing module 500 of the system 13. Again, the processing module 500 of the system 11 implements Figure 3 The coding module of the method and the processing module 500 of the system 13 implement Figure 4 The decoding module of the method.
[0288] In step 1601, the processing module 500 obtains a current block to be encoded (or decoded) according to the CC encoding tool. For example, the current block is a block CU1 or CU2 or CU3 from the block group GR4.
[0289] In step 1602, the processing module 500 selects an index of a CC prediction model parameter set from among a plurality of CC prediction model parameter sets. Fig.16 and 17 In the embodiment of the present invention, the CC prediction model parameter sets are stored in two buffers 1707 and 1708.
[0290] Each CC prediction model parameter set has been computed from samples of the reconstructed block group. For example:
[0291] The CC prediction model parameter set CCPM has been calculated from the sample row 1705 of the block group GR3 1705
[0292] The CC prediction model parameter set CCPM has been calculated from the sample row 1701 of the block group GR1 1701
[0293] The CC prediction model parameter set CCPM has been calculated from the sample row 1703 of the block group GR2 1703
[0294] The CC prediction model parameter set CCPM has been calculated from the sample column 1706 of the block group GR3 1706
[0295] The CC prediction model parameter set CCPM has been calculated from the sample column 1702 of the block group GR1 1702
[0296] The CC prediction model parameter set CCPM has been calculated from the sample column 1704 of the block group GR2 1704
[0297] The CC prediction model parameter sets estimated from the columns are stored in buffer 1707. The CC prediction model parameter sets estimated from the rows are stored in buffer 1708.
[0298] In an embodiment of step 1602, the processing module 500 determines the distance between the sample of the current block and the sample used to estimate the prediction model parameter set for each prediction model parameter set, and selects the CC prediction model parameter set estimated from the sample closest to the current block (i.e., selects the CC prediction model parameter set corresponding to the shortest distance). For example, the sample closest to block CU3 is the sample of column 1706. In this case, for block CU3, the processing module 500 selects the CC prediction model parameter set CCPM 1706 The samples closest to block CU2 are the samples of row 1703. In this case, for block CU2, the processing module 500 selects the CC prediction model parameter set CCPM 1703 . For CU1, the samples of column 1706 and the samples of row 1703 are at the same distance from block CU1. In this case, another selection criterion is used. For example, the CC prediction model parameter set is randomly selected from all possible CC prediction model parameter sets. In a variant, a comparison of the characteristics of the samples used to estimate the CC prediction model parameter set with the characteristics of the samples of the block to be predicted is used to select the CC prediction model parameter set.
[0299] In a variant, an index is signaled to indicate which CC prediction model parameters are to be used. In this case, advantageously, the indexes of the CC prediction model parameters can be reordered based on the distance of the samples used to calculate the CC model to the current block or based on the characteristics of the samples used to estimate the CC prediction model parameter set and, for example, the characteristics of the samples of the block to be predicted. The binarization of the indexes then depends on their order, and the size of the binary code representing each index increases as the order increases.
[0300] In step 1603, the processing module 500 predicts the chrominance samples of the current block using (one or more) CC prediction models based on the selected CC prediction model parameter set and the reconstructed luma samples of the current block. Step 1603 corresponds to step 1040 already explained.
[0301] In step 1604, the processing module 500 determines whether the current block is the last block of the block group (i.e., the processing module 500 determines whether all blocks of the block group have been reconstructed). If not, the processing module 500 returns to step 1601. Calculating the CC prediction model parameter set only for the block group allows the frequency of updating the CC prediction model parameters to be controlled.
[0302] Otherwise, in step 1605 , the processing module 500 calculates a new CC prediction model parameter set from the sample columns at the right boundary of the block group, and calculates a new CC prediction model parameter set from the sample rows at the bottom boundary of the block group.
[0303] In step 1606, the processing module 500 stores a new CC prediction model parameter set calculated from the row in the buffer 1708 to replace the oldest CC prediction model parameter set in the buffer 1708, and stores a new CC prediction model parameter set calculated from the column in the buffer 1707 to replace the oldest CC prediction model parameter set in the buffer 1707. Step 1606 is followed by step 1601, starting from the current block of the new block group.
[0304] It may be noted that any combination of the first, second and third embodiments and their variations are possible.
[0305] We have described many embodiments above. The features of these embodiments may be provided individually or in any combination. In addition, embodiments may include one or more of the following features, devices, or aspects, alone or in any combination, across various claim categories and types:
[0306] - A bitstream or signal comprising one or more of said syntax elements or variations thereof.
[0307] ●Creating and / or transmitting and / or receiving and / or decoding a bitstream or signal comprising one or more of said syntax elements or variations thereof.
[0308] ● TV, set-top box, phone, tablet or other electronic device performing at least one of the described embodiments.
[0309] - A TV, set-top box, phone, tablet or other electronic device that performs at least one of the described embodiments and displays (eg, using a monitor, screen or other type of display) the resulting picture.
[0310] - A TV, set-top box, phone, tablet computer, or other electronic device that tunes (eg, using a tuner) a channel to receive a signal comprising an encoded video stream and performs at least one of the described embodiments.
[0311] • A TV, set-top box, phone, tablet, or other electronic device that receives over the air (eg, using an antenna) a signal including an encoded video stream and performs at least one of the described embodiments.
[0312] - A server, camera, phone, tablet, or other electronic device that transmits over the air (eg, using an antenna) a signal comprising an encoded video stream and performs at least one of the described embodiments.
[0313] - A server, camera, phone, tablet, or other electronic device that tunes (eg, using a tuner) a channel to transmit a signal comprising an encoded video stream and performs at least one of the described embodiments.
Claims
1. A method for encoding a block of a picture using a cross-component coding tool that allows prediction of chrominance samples of the block from reconstructed luminance samples of the block (1010, 1030, 1040), the method comprising applying a convolution filter to the reconstructed luminance samples of the block at its original sampling resolution to obtain a predictor of the chrominance samples of the block.
2. The method according to claim 1, wherein: The convolution filters are independent of the chroma format of the block.
3. A method comprising: For each chroma component of at least a portion of a picture, information representing a phase value between samples of the chroma component and samples of the luma component of the picture is signaled (1403), the phase value being taken from at least three different phase values for each chroma component.
4. The method according to claim 3, wherein: All chroma components of at least a portion of a picture share the same information representing a phase value.
5. The method according to claim 3, wherein: Each chrominance component is associated with different information representing a phase value.
6. The method according to claim 3, 4 or 5, wherein: Information representing the phase value is signaled in a sequence parameter set, a picture parameter set, a picture header, or in each region of a picture.
7. A method for encoding, comprising: Obtain (1401) the original image; Obtaining (1402) information representing the chroma phase of the original picture; as well as, The method of claim 3, 4, 5 or 6 is applied (1403) during encoding of a bitstream representing an original picture.
8. The method according to claim 5 further includes encoding (1403) a block of the picture using a cross-component coding tool, wherein the cross-component coding tool allows predicting the chrominance samples of the block from the reconstructed luminance samples of the block, wherein during the encoding of the block using the cross-component coding tool, each phase information is taken into account for the downsampling (1015) of the reconstructed luminance samples of the block.
9. The method according to claim 8, wherein: The downsampling of the reconstructed luma samples uses at least one downsampling filter, and the method further comprises signaling coefficients of each downsampling filter.
10. The method according to claim 7, wherein: Each phase information is taken into account in a pre-processing process applied to at least a portion of the picture before applying a cross-component coding tool allowing prediction of chrominance samples of the block from reconstructed luminance samples of the block.
11. A method for encoding (1507) a block of a picture using a cross-component coding tool, wherein the cross-component coding tool allows the use of a prediction model to predict the chrominance samples of the block from the reconstructed luminance samples of the block (1010, 1030, 1040), which comprises obtaining (1506) a set of prediction model parameters for the block from a set of prediction model parameters calculated independently of the samples of the block.
12. The method according to claim 11, wherein: A plurality of prediction model parameter sets calculated independently of samples of the block are stored in at least one buffer of prediction model parameter sets, and obtaining the prediction model parameter set for the block comprises selecting one of the plurality of sets stored in the at least one buffer of the prediction model parameter set.
13. The method according to claim 11 or 12, wherein: Each set of prediction model parameters calculated independently of samples of the block is calculated for another block to which a cross-component coding tool is applied, or is calculated from samples of a group of blocks of a picture different from the group of blocks comprising the block.
14. A method according to claim 11, 12 or 13, comprising determining (1502, 1604) when to calculate and store new prediction model parameters in response to satisfying a condition regarding the frequency of updating the prediction model parameters of the cross-component coding tool, the condition being satisfied in response to the number of blocks encoded using the cross-component coding tool since the last calculation of the prediction model parameter set being higher than a value or in response to all blocks of a block group of a picture having been encoded.
15. The method according to claim 12, 13 or 14, wherein: Selecting one of a plurality of sets stored in at least one buffer of prediction model parameter sets comprises: selecting the set based on a comparison of at least one characteristic of the luma samples used for calculating each set of prediction model parameters with the same characteristic of the luma samples of the block, the at least one characteristic being a minimum and / or maximum value of the luma samples or a standard deviation of the luma samples or a mean value of the luma samples; or, The sets are selected based on the spatial distance between samples of the block and samples used to estimate each set of prediction model parameters.
16. The method according to claim 12, wherein: Each buffer is a circular buffer storing a finite number of prediction model parameter sets, and the most recently calculated prediction model parameter set replaces the oldest prediction model parameter set in the buffer.
17. A method for decoding a block of a picture using a cross-component coding tool, the cross-component coding tool allowing prediction of chrominance samples of the block from reconstructed luminance samples of the block (1010, 1030, 1040), the method comprising applying a convolution filter to the reconstructed luminance samples of the block at its original sampling resolution to obtain a predictor of the chrominance samples of the block.
18. The method according to claim 17, wherein: The convolution filters are independent of the chroma format of the block.
19. A method comprising: For each chroma component of at least a portion of a picture, information representing a phase value between samples of the chroma component and samples of a luma component of the picture is parsed (1412), the phase value being taken from at least three different phase values for each chroma component.
20. The method according to claim 19, wherein: All chroma components of at least a portion of a picture share the same information representing a phase value.
21. The method according to claim 19, wherein: Each chrominance component is associated with different information representing a phase value.
22. The method of claim 19, 20 or 21, wherein: Information representing the phase value is signaled in a sequence parameter set, a picture parameter set, a picture header, or in each region of a picture.
23. A method for decoding, comprising: Obtaining (1401) a bitstream representing a picture; as well as, Decoding a bit stream, wherein decoding comprises applying the method of claim 19, 20, 21 or 22.
24. The method according to claim 23 further includes decoding a block of the picture using a cross-component coding tool, the cross-component coding tool allowing prediction of chrominance samples of the block from reconstructed luminance samples of the block, wherein during decoding of the block using the cross-component coding tool, downsampling (1015) of the reconstructed luminance samples of the block takes into account each phase information.
25. The method according to claim 24, wherein: The downsampling of the reconstructed luma samples uses at least one downsampling filter, and the method further comprises parsing coefficients of each downsampling filter from the bitstream.
26. The method of claim 23, wherein: Each phase information is taken into account in a post-processing process applied to a reconstructed version of at least a portion of the picture after applying a cross-component coding tool allowing prediction of chrominance samples of the block from reconstructed luminance samples of the block.
27. A method for decoding a block of a picture (1507) using a cross-component coding tool, wherein the cross-component coding tool allows the use of a prediction model to predict the chrominance samples (1010, 1030, 1040) of the block from the reconstructed luminance samples of the block, the method comprising obtaining (1506) a set of prediction model parameters for the block from a set of prediction model parameters calculated independently of the samples of the block.
28. The method according to claim 27, wherein: A plurality of prediction model parameter sets calculated independently of samples of the block are stored in at least one buffer of prediction model parameter sets, and obtaining the prediction model parameter set for the block comprises selecting one of the plurality of sets stored in the at least one buffer of the prediction model parameter set.
29. The method according to claim 27 or 28, wherein: Each set of prediction model parameters calculated independently of samples of the block is calculated for another block to which a cross-component coding tool is applied, or is calculated from samples of a group of blocks of a picture different from the group of blocks comprising the block.
30. A method according to claim 27, 28 or 29, comprising determining (1502, 1604) when to calculate and store new prediction model parameters in response to satisfying a condition regarding the frequency of updating the prediction model parameters of the cross-component coding tool, the condition being satisfied in response to the number of blocks decoded using the cross-component coding tool since the last calculation of the prediction model parameter set being higher than a value or in response to all blocks of a block group of a picture having been decoded.
31. The method of claim 28, 29 or 30, wherein: Selecting one of a plurality of sets stored in at least one buffer of prediction model parameter sets comprises: selecting the set based on a comparison of at least one characteristic of the luma samples used for calculating each set of prediction model parameters with the same characteristic of the luma samples of the block, the at least one characteristic being a minimum and / or maximum value of the luma samples or a standard deviation of the luma samples or a mean value of the luma samples; or, The sets are selected based on the spatial distance between samples of the block and samples used to estimate each set of prediction model parameters.
32. The method of claim 28, wherein: Each buffer is a circular buffer storing a finite number of prediction model parameter sets, and the most recently calculated prediction model parameter set replaces the oldest prediction model parameter set in the buffer.
33. An apparatus for encoding a block of a picture using a cross-component coding tool, the cross-component coding tool allowing prediction of chrominance samples of the block from reconstructed luminance samples of the block (1010, 1030, 1040), the apparatus comprising an electronic circuit system configured to apply a convolution filter to the reconstructed luminance samples of the block at its original sampling resolution to obtain a predictor of the chrominance samples of the block.
34. The device according to claim 33, wherein The convolution filters are independent of the chroma format of the block.
35. An apparatus comprising an electronic circuit system configured to: For each chroma component of at least a portion of a picture, information representing a phase value between samples of the chroma component and samples of a luma component of the picture is signaled, the phase value being taken from at least three different phase values for each chroma component.
36. The apparatus of claim 35, wherein: All chroma components of at least a portion of a picture share the same information representing a phase value.
37. The apparatus of claim 35, wherein: Each chrominance component is associated with different information representing a phase value.
38. Apparatus according to claim 35, 36 or 37, wherein Information representing the phase value is signaled in a sequence parameter set, a picture parameter set, a picture header, or in each region of a picture.
39. An apparatus for encoding, comprising an electronic circuit system configured to: Obtain (1401) the original image; Obtaining (1402) information representing the chroma phase of the original picture; And further includes the apparatus of claim 35, 36, 37 or 38.
40. The device according to claim 39, wherein The electronic circuit system is further configured to encode a block of a picture using a cross-component coding tool (1403), the cross-component coding tool allowing prediction of chrominance samples of the block from reconstructed luminance samples of the block, wherein during encoding of the block using the cross-component coding tool, downsampling (1015) of the reconstructed luminance samples of the block takes into account each phase information.
41. The device according to claim 40, wherein The downsampling of the reconstructed luma samples uses at least one downsampling filter, and the electronic circuitry is further configured to signal coefficients of each downsampling filter.
42. The apparatus of claim 39, wherein: Each phase information is taken into account in a pre-processing process applied to at least a portion of the picture before applying a cross-component coding tool allowing prediction of chrominance samples of the block from reconstructed luminance samples of the block.
43. A device for encoding (1507) a block of a picture using a cross-component coding tool, wherein the cross-component coding tool allows the use of a prediction model to predict the chrominance samples of the block from the reconstructed luminance samples of the block (1010, 1030, 1040), the device comprising an electronic circuit system configured to obtain (1506) a set of prediction model parameters for the block from a set of prediction model parameters calculated independently of the samples of the block.
44. The device according to claim 43, wherein Multiple prediction model parameter sets calculated independently of the samples of the block are stored in at least one buffer of the prediction model parameter set, and in order to obtain the prediction model parameter set of the block, the electronic circuit system is further configured to select one of the multiple sets stored in at least one buffer of the prediction model parameter set.
45. The device according to claim 43 or 44, wherein: Each set of prediction model parameters calculated independently of samples of the block is calculated for another block to which a cross-component coding tool is applied, or is calculated from samples of a group of blocks of a picture different from the group of blocks comprising the block.
46. Apparatus according to claim 43, 44 or 45, wherein: The electronic circuit system is further configured to determine (1502, 1604) when to calculate and store new prediction model parameters in response to a condition being satisfied regarding the frequency of updating the prediction model parameters of the cross-component coding tool, the condition being satisfied in response to a number of blocks encoded using the cross-component coding tool since the last calculation of the prediction model parameter set being higher than a value or in response to all blocks of a block group of a picture having been encoded.
47. The apparatus of claim 43, 44 or 45, wherein: To select one of the plurality of sets stored in the at least one buffer of prediction model parameter sets includes, the electronic circuit system is further configured to: selecting the set based on a comparison of at least one characteristic of the luma samples used for calculating each set of prediction model parameters with the same characteristic of the luma samples of the block, the at least one characteristic being a minimum and / or maximum value of the luma samples or a standard deviation of the luma samples or a mean value of the luma samples; or, The sets are selected based on the spatial distance between samples of the block and samples used to estimate each set of prediction model parameters.
48. The apparatus of claim 47, wherein: Each buffer is a circular buffer storing a finite number of prediction model parameter sets, and the most recently calculated prediction model parameter set replaces the oldest prediction model parameter set in the buffer.
49. A device for decoding a block of a picture using a cross-component coding tool, the cross-component coding tool allowing prediction of chrominance samples of the block from reconstructed luminance samples of the block (1010, 1030, 1040), the device comprising an electronic circuit system configured to apply a convolution filter to the reconstructed luminance samples of the block at its original sampling resolution to obtain a predictor of the chrominance samples of the block.
50. The apparatus of claim 49, wherein: The convolution filters are independent of the chroma format of the block.
51. An apparatus comprising an electronic circuit system configured to: For each chroma component of at least a portion of a picture, information representing a phase value between samples of the chroma component and samples of a luma component of the picture is resolved, the phase value being taken from at least three different phase values for each chroma component.
52. The apparatus of claim 51, wherein: All chroma components of at least a portion of a picture share the same information representing a phase value.
53. The apparatus of claim 51, wherein: Each chrominance component is associated with different information representing a phase value.
54. Apparatus according to claim 51, 52 or 53, wherein Information representing the phase value is signaled in a sequence parameter set, a picture parameter set, a picture header, or in each region of a picture.
55. An apparatus for decoding, comprising electronic circuitry configured to: obtaining (1401) a bitstream representing a picture; and Decode the bitstream; And includes the device of claim 51, 52, 53 or 54.
56. The apparatus of claim 55, wherein: The electronic circuit system is further configured for decoding a block of a picture using a cross-component coding tool, the cross-component coding tool allowing prediction of chrominance samples of the block from reconstructed luminance samples of the block, wherein during decoding of the block using the cross-component coding tool, downsampling (1015) of the reconstructed luminance samples of the block takes into account each phase information.
57. The apparatus of claim 56, wherein: The downsampling of the reconstructed luma samples uses at least one downsampling filter, and the electronic circuit system is further configured to parse coefficients of each downsampling filter from the bitstream.
58. The apparatus of claim 55, wherein: Each phase information is taken into account in a post-processing process applied to a reconstructed version of at least a portion of the picture after applying a cross-component coding tool allowing prediction of chrominance samples of the block from reconstructed luminance samples of the block.
59. A device for decoding (1507) a block of a picture using a cross-component coding tool, wherein the cross-component coding tool allows the use of a prediction model to predict the chrominance samples of the block from the reconstructed luminance samples of the block (1010, 1030, 1040), the device comprising an electronic circuit system configured to obtain (1506) a set of prediction model parameters for the block from a set of prediction model parameters calculated independently of the samples of the block.
60. The apparatus of claim 59, wherein: A plurality of prediction model parameter sets calculated independently of the samples of the block are stored in at least one buffer of the prediction model parameter sets, and in order to obtain the prediction model parameter set for the block, the electronic circuit is further configured to select one of the plurality of sets stored in at least one buffer of the prediction model parameter sets.
61. The apparatus of claim 59 or 60, wherein: Each set of prediction model parameters calculated independently of samples of the block is calculated for another block to which a cross-component coding tool is applied, or is calculated from samples of a group of blocks of a picture different from the group of blocks comprising the block.
62. The apparatus of claim 59, 60 or 61, wherein: The electronic circuit system is further configured to (1502, 1604) determine when to calculate and store new prediction model parameters in response to satisfying a condition regarding the frequency of updating the prediction model parameters of the cross-component coding tool, the condition being satisfied in response to a number of blocks decoded using the cross-component coding tool since the last calculation of the prediction model parameter set being higher than a value or in response to all blocks of a block group of a picture having been encoded.
63. The apparatus of claim 60, 61 or 62, wherein: To select one of the plurality of sets stored in the at least one buffer of prediction model parameter sets, the electronic circuit system is further configured to: selecting the set based on a comparison of at least one characteristic of the luma samples used for calculating each set of prediction model parameters with the same characteristic of the luma samples of the block, the at least one characteristic being a minimum and / or maximum value of the luma samples or a standard deviation of the luma samples or a mean value of the luma samples; or, The sets are selected based on the spatial distance between samples of the block and samples used to estimate each set of prediction model parameters.
64. The apparatus of claim 60, wherein: Each buffer is a circular buffer storing a finite number of prediction model parameter sets, and the most recently calculated prediction model parameter set replaces the oldest prediction model parameter set in the buffer.
65. A signal comprising, for each chrominance component of at least a portion of a picture, information representing a phase value between samples of the chrominance component and samples of the luminance component of the picture, the phase value being taken from at least three different phase values for each chrominance component.
66. A computer program comprising program code instructions for implementing the method according to any preceding claim 1 to 32.
67. A non-transitory information storage medium storing program code instructions for implementing a method according to any preceding claim of claims 1 to 32.