Chroma format compatible
By dynamically adjusting chroma format and relative position in video encoding and decoding, the solution addresses the degradation in signal quality and efficiency caused by uniform downsampling in RPR, improving PSNR and SSIM.
Patent Information
- Application Number
- JP2024534434
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-12-15
- Filing Date
- 2022-12-01
- Publication Date
- 2025-01-23
AI Technical Summary
The current video coding schemes, particularly in standards like VVC, apply uniform downsampling to chroma components during Reference Picture Resampling (RPR), which can degrade objective and subjective signal quality, such as PSNR and SSIM, without improving compression efficiency.
Dynamically adjust the downsampling process for chroma components by signaling the chroma format and relative position of chroma samples to luma samples in video encoding and decoding, allowing for different resolution ratios between luma and chroma components.
Improves compression efficiency and subjective quality by optimizing the downsampling process for chroma components, enhancing Peak Signal to Noise Ratio (PSNR) and Structural SIMilarity (SSIM) performance.
Smart Images

Figure 2025501692000001_ABST
Abstract
Description
[Technical field]
[0001] At least one of the present embodiments generally relates to methods and apparatus for controlling chroma format and / or relative position of chroma samples with respect to luma samples in video encoding and decoding applications. [Background technology]
[0002] To achieve high compression efficiency, video coding schemes typically employ prediction and transformation that exploit spatial and temporal redundancy in the video content. During encoding, an image of the video content is divided into blocks of samples (i.e., pixels), which are then divided into one or more sub-blocks, hereafter referred to as original sub-blocks. Intra- or inter-prediction is then applied to each sub-block to exploit intra- or inter-image correlation. Whatever the prediction method (intra- or inter-) used, a predictor sub-block is determined for each original sub-block. Sub-blocks representing the difference between the original and predicted sub-blocks, often denoted as prediction error sub-blocks, prediction residual sub-blocks, or simply residual blocks, are then transformed, quantized, and entropy coded to generate an encoded video stream. To reconstruct the video, the compressed data is decoded by the inverse processes corresponding to the transform, quantization, and entropy coding.
[0003] A tool called Reference Picture Resampling (RPR), employed for example in the video compression standard VVC (ISO / IEC 23090-3-MPEG-I, Versatile Video Coding / ITU-T H.266), allows changing the picture size of coded pictures on the fly. Pictures are stored in a decoded picture buffer, commonly called decoded picture buffer (DPB), at their actual coded / decoded size, which may be lower than the size signaled in the high-level syntax (HLS) of the bitstream (maximum size specified in the sequence header). When a picture being coded at a given size uses reference pictures that are not the same size for temporal or inter-layer prediction, texture reference picture resampling is applied so that the predicted picture and the reference picture have the same size. It should be noted that, depending on the implementation, the resampling process may not necessarily be applied to the entire reference picture (full reference picture resampling), but only to blocks identified as reference blocks when performing the decoding and reconstruction of the current block (block-based reference picture resampling). In this case, when a current block in the current picture uses reference samples of a reference picture having a different size than the current picture, the samples in the reference picture used for the temporal prediction of the current block are resampled according to a resampling ratio calculated as the ratio between the current size and the reference size.
[0004] The steps of RPR and motion compensation may be combined into one single-sample interpolation step, this aspect being detailed further below in conjunction with FIGS.
[0005] Figure 1 shows an example of the application of the RPR tool. In Figure 1, picture 4 is temporally predicted from picture 3. Picture 3 is temporally predicted from picture 2. Picture 2 is temporally predicted from picture 1. Picture 4 and picture 3 have different sizes, so picture 3 is upsampled to the size of picture 4. Pictures 3 and 2 have the same size. No upsampling or downsampling is applied to picture 2 for temporal prediction. Picture 1 is larger than picture 2. Downsampling is applied to picture 1 for temporal prediction of picture 2. In either case, all pictures are upsampled or downsampled to the same size for display.
[0006] A color picture generally consists of three (e.g., RGB or YUV) components. Conventionally, to reduce storage space or to facilitate compression, the chroma components of a picture are subsampled by a factor (e.g., 2 or 4) horizontally and / or vertically compared to the original / standard 4:4:4 format, because the human eye is less sensitive to signal distortions in the chroma components than in the luma (Y) component. For example, in a 4:2:2 chroma format, the number of chroma samples is subsampled by 2 horizontally, and in a 4:2:0 chroma format, the number of chroma samples is subsampled by 2 horizontally and vertically. The size of the chroma components in a 4:2:2 chroma format is half the size of the luma components. The size of the chroma components in a 4:2:0 chroma format is one-quarter the size of the luma components.
[0007] Generally, when RPR is used, the same downsampling ratio is applied to all components. If the input chroma format includes subsampled chroma components (e.g., 4:2:2, 4:2:0), RPR adds another downsampling process to the already downsampled chroma components. The problem with this design is that the successive downsampling applied to the chroma components may result in objective (e.g., PSNR (Peak Signal to Noise Ratio) or SSIM (Structural SIMilarity)) and / or subjective signal degradation in the chroma components, which may be unacceptable and may jeopardize the benefit of RPR. Summary of the Invention [Problem to be solved by the invention]
[0008] It would be desirable to propose a solution that makes it possible to overcome the above problems, in particular to better take into account the effects of successive downsampling in the RPR process.
[0009] In a first aspect, one or more of the present embodiments provide a method for encoding a video sequence from original video data, comprising coding a first picture of the video sequence with features related to chroma components of the first picture that are different from same features related to chroma components of a second picture of the video sequence, the features related to the chroma components representing a chroma format and / or a relative position of a chroma sample with respect to a luma sample.
[0010] In a second aspect, one or more of the embodiments provide a device for encoding a video sequence from original video data, the device comprising electronic circuitry configured to code a first picture of the video sequence with features related to chroma components of the first picture that differ from same features related to chroma components of a second picture of the video sequence, the features related to the chroma components representing a chroma format and / or a relative position of a chroma sample with respect to a luma sample.
[0011] In one embodiment of the first or second aspect, at least one block of the first picture is temporally predicted from samples of the second picture.
[0012] In one embodiment of the first or second aspect, the chroma format of the first picture depends on the values of the luma resolution ratio between the size of the luma component of the first picture and the size of the luma component of the second picture, and the chroma resolution ratio between the size of the chroma component of the first picture and the size of the chroma component of the second picture, which are different from the luma resolution ratio and the chroma resolution ratio.
[0013] In an embodiment of the first or second aspect, the chroma format of the first picture is signaled in a picture header, a slice header or a picture parameter set to which the first picture refers.
[0014] In one embodiment of the first or second aspect, the chroma format indicated in the sequence header to which the video sequence refers indicates the chroma format associated with the maximum picture size of the video sequence or the chroma format of the original video data.
[0015] In an embodiment of the first or second aspect, the relative positions of the chroma samples with respect to the luma samples are signaled in a picture header, slice header or picture parameter set to which the first picture refers.
[0016] In an embodiment of the first or second aspect, the relative positions of the chroma samples with respect to the luma samples are signaled in a picture header or a slice header in response to a first picture having a chroma format different from the chroma format indicated in the sequence header.
[0017] In an embodiment of the first or second aspect, in response to the chroma format of the first picture being 4:4:4, default values are provided for the relative positions of the chroma samples with respect to the luma samples.
[0018] In an embodiment of the first or second aspect, the chroma format of the first picture is one of 4:4:4 or 4:2:0 or 4:2:2.
[0019] In one embodiment of the first or second aspect, in response to the chroma format of the first picture being different from the chroma format of the original video data, the chroma format of the first picture complies with an allowed ratio between a picture width of the original video data and a width of the first picture, and an allowed ratio between a picture height of the original video data and a height of the first picture.
[0020] In a third aspect, one or more of the present embodiments provide a method for decoding a video sequence representing original video data, comprising decoding a first picture of the video sequence having features for chroma components of the first picture that differ from same features for chroma components of a second picture of the video sequence, the features for the chroma components representing a chroma format and / or a relative position of the chroma samples with respect to the luma samples.
[0021] In a fourth aspect, one or more of the present embodiments provide a device for decoding a video sequence representing original video data, the device comprising: electronic circuitry configured to decode a first picture of the video sequence having features relating to chroma components of the first picture that differ from same features relating to chroma components of a second picture of the video sequence, the features relating to the chroma components representing a chroma format and / or a relative position of the chroma samples with respect to the luma samples.
[0022] In an embodiment of the third or fourth aspect, at least one block of the first picture is temporally predicted from samples of the second picture.
[0023] In an embodiment of the third or fourth aspect, the chroma format of the first picture depends on the values of a luma resolution ratio between the size of the luma component of the first picture and the size of the luma component of the second picture, and a chroma resolution ratio between the size of the chroma component of the first picture and the size of the chroma component of the second picture, which are different from the luma resolution ratio and the chroma resolution ratio.
[0024] In an embodiment of the third or fourth aspect, the chroma format of the first picture is signaled in a picture header, a slice header or a picture parameter set to which the first picture refers.
[0025] In an embodiment of the third or fourth aspect, the chroma format signaled in the sequence header to which the video sequence refers indicates the chroma format associated with the maximum picture size of the video sequence or the chroma format of the original video data.
[0026] In an embodiment of the third or fourth aspect, the relative positions of the chroma samples with respect to the luma samples are indicated in a picture header, slice header or picture parameter set referenced by the first picture.
[0027] In an embodiment of the third or fourth aspect, in response to the chroma format of the first picture being different from the chroma format indicated in the sequence header, the relative positions of the chroma samples with respect to the luma samples are indicated in the picture header or slice header.
[0028] In an embodiment of the third or fourth aspect, in response to the chroma format of the first picture being 4:4:4, default values are provided for the relative positions of the chroma samples with respect to the luma samples.
[0029] In an embodiment of the third or fourth aspect, the chroma format of the first picture is one of 4:4:4 or 4:2:0 or 4:2:2.
[0030] In an embodiment of the third or fourth aspect, in response to the chroma format of the first picture being different from the chroma format of the original video data, the chroma format of the first picture complies with an allowed ratio between a picture width of the original video data and a width of the first picture, and an allowed ratio between a picture height of the original video data and a height of the first picture.
[0031] In a fifth aspect, one or more of the present embodiments provides a method, the method comprising: Obtaining reconstructed pixels of the picture; classifying the reconstructed pixel into one of a plurality of categories based on a value of a luma sample of the reconstructed pixel and a value of a chroma sample of the reconstructed pixel, the value of the luma sample being dependent on a candidate position of the luma sample in the picture selected in the set of candidate positions; applying an offset to each sample of the reconstructed pixel based on a category into which the reconstructed pixel falls; The number of candidate locations in the set of candidate locations depends on the chroma format of the picture.
[0032] In a sixth aspect, one or more of the present embodiments provides a device comprising an electronic circuit, the electronic circuit comprising: Obtaining reconstructed pixels of the picture; classifying the reconstructed pixel into one of a plurality of categories based on a value of a luma sample of the reconstructed pixel and a value of a chroma sample of the reconstructed pixel, the value of the luma sample being dependent on a candidate position of the luma sample in the picture selected in the set of candidate positions; applying an offset to each sample of the reconstructed pixel based on a category into which the reconstructed pixel is classified; The number of candidate locations in the set of candidate locations depends on the chroma format of the picture.
[0033] In an embodiment of the fifth or sixth aspect, when the chroma format is 4:4:4, the set comprises a single position.
[0034] In an embodiment of the fifth or sixth aspect, the single location is a default location.
[0035] In an embodiment of the fifth or sixth aspect, the number of positions in the set is a function of the ratio between the number of chroma samples in the picture and the number of luma samples in the picture.
[0036] In a seventh aspect, one or more of the present embodiments provide an encoding method including the method of the fifth aspect.
[0037] In an eighth aspect, one or more of the present embodiments provide a decoding method including the method of the fifth aspect.
[0038] In a ninth aspect, one or more of the present embodiments provides an encoding device comprising a device according to the sixth aspect.
[0039] In a tenth aspect, one or more of the present embodiments provide a decoding device comprising the device of the sixth aspect.
[0040] In an eleventh aspect, one or more of the present embodiments provides a signal generated by the method of the first aspect, or by the method of the seventh aspect, or by the device of the second aspect, or by the device of the ninth aspect.
[0041] In a twelfth aspect, one or more of the present embodiments provide a computer program comprising program code instructions for carrying out a method according to the first aspect, the third aspect, the fifth aspect, the seventh aspect or the eighth aspect.
[0042] In a thirteenth aspect, one or more of the present embodiments provide a non-transitory information storage medium storing program code instructions for implementing a method according to the first aspect, the third aspect, the fifth aspect, the seventh aspect or the eighth aspect. [Brief description of the drawings]
[0043] [Figure 1] FIG. 1 illustrates an application of the reference picture resampling tool. [Diagram 2] FIG. 2 shows diagrammatically an example of a division that a picture of pixels of an original video undergoes. [Diagram 3] FIG. 3 illustrates diagrammatically a method for encoding a video stream. [Figure 4] FIG. 4 illustrates generally a method for decoding an encoded video stream. [Figure 5A] FIG. 5A illustrates a schematic diagram of an example of a video streaming system in which embodiments may be implemented. [Figure 5B] FIG. 5B illustrates a schematic 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. [Figure 5C] FIG. 5C illustrates a block diagram of an example of a first system in which various aspects and embodiments may be implemented. [Figure 5D]FIG. 5D illustrates a block diagram of an example of a second system in which various aspects and embodiments may be implemented. [Figure 6] FIG. 6 is a diagram representing multiple positions that can be taken by luma samples compared to the fixed positions of chroma samples when a picture uses a 4:2:0 chroma format. [Figure 7] FIG. 7 represents the phase applied to the predicted samples within a line of a picture. [Figure 8] FIG. 8 illustrates generally an example of a method for encoding a video sequence that includes at least two different chroma formats. [Figure 9] FIG. 9 illustrates generally an example of a method for decoding an encoded video sequence that includes at least two different chroma formats. [Figure 10] FIG. 10 shows schematic details regarding the application of RPR. [Figure 11A] FIG. 11A shows a schematic representation of the centering positions of the chroma samples. [Figure 11B] FIG. 11B illustrates a schematic representation of the co-located locations of the chroma samples. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0044] The following examples of embodiments are described in the context of video formats similar to VVC. However, these embodiments are not limited to video coding / decoding methods corresponding to VVC. These embodiments are particularly adapted to any video format that allows generating a video stream containing pictures with different sizes, the reconstructed size of the pictures may differ from the size used for temporal prediction. Such formats include, for example, the standards HEVC, AVC, EVC (Essential Video Coding / MPEG-5), AV1, and VP9.
[0045] 2, 3 and 4 introduce examples of video formats.
[0046] 2 shows an example of a division undergone by a picture of a pixel 21 of an original video 20. Here, the pixel is considered to consist of three components: a luminance component and two chrominance components. However, other types of pixels can contain more components, such as an additional depth component.
[0047] A picture is divided into multiple coding entities. First, as represented by reference number 23 in FIG. 2, 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 and two corresponding blocks of chrominance samples. N is typically a power of two with a maximum value of, for example, "128". Second, a picture is divided into one or more groups of CTUs. For example, a picture can be divided into one or more tile rows and tile columns, where a tile is a sequence of CTUs that covers a rectangular area of the picture. In some cases, a tile can be divided into one or more bricks, each of which consists of at least one CTU row in the tile. On top of the concept of tiles and bricks, there is another coding entity called a slice, which can include at least one tile of a picture or at least one brick of a tile.
[0048] In the example of Figure 2, as represented by reference numeral 22, a picture 21 is divided into three slices S1, S2 and S3 in a raster scan slice mode, each containing multiple tiles (not shown), with each tile containing only one brick.
[0049] As represented by reference numeral 24 in Figure 2, a CTU may be divided into a hierarchical tree of one or more sub-blocks called coding units (CUs). The CTU is the root (i.e., parent node) of the hierarchical tree and may be divided into multiple CUs (i.e., child nodes). Each CU becomes a leaf of the hierarchical tree if it has not been further divided into smaller CUs, or becomes a parent node of the smaller CUs (i.e., child nodes) if it has been further divided.
[0050] In the example of FIG. 2, CTU 24 is first split into "4" rectangular CUs using a quad-tree type split. The top-left CU is a leaf of the hierarchical tree, i.e., it is not a parent node of other CUs, since it is not split further. The top-right CU is further split into "4" smaller rectangular CUs, also using a quad-tree type split. The bottom-right CU is split vertically into "2" rectangular CUs using a binary tree type split. The bottom-left CU is split vertically into "3" rectangular CUs using a ternary tree type split.
[0051] During coding of a picture, the partitioning is adaptive, and each CTU is partitioned to optimize the compression efficiency of the CTU criteria.
[0052] In HEVC, the concept of prediction unit (PU) and transform unit (TU) has appeared. Indeed, in HEVC, the coding entities used for prediction (i.e., PU) and transformation (i.e., TU) may be parts of a CU. For example, as shown in FIG. 2, a CU of size 2N×2N may be divided into PUs 2411 of size N×2N or size 2N×N. The CU may further be divided into “4” TUs 2412 of size N×N or PUs of size N×N.
[0053]
number
[0054] It may be noted that in VVC, except for some specific cases, the frontiers of TUs and PUs are aligned with the frontier of a CU. Thus, a CU generally contains one TU and one PU.
[0055] In this application, the term "block" or "picture block" may be used to refer to any one of a CTU, a CU, a PU, and a TU. Additionally, the term "block" or "picture block" may be used to refer to a macroblock, a partition, and a sub-block as specified in H.264 / AVC or other video coding standards, and more generally to an array of samples of multiple sizes.
[0056] In this application, the terms "reconstructed" and "decoded" can be used interchangeably, the terms "pixel" and "sample" can be used interchangeably, and the terms "image", "picture", "sub-picture", "slice", and "frame" can be used interchangeably. Typically, but not necessarily, the term "reconstructed" is used on the encoder side, while the term "decoded" is used on the decoder side.
[0057] Fig. 3 shows a schematic diagram of a method for encoding a video stream executed by an encoding module. Variations of this method for encoding are contemplated, but for the sake of clarity, the method for encoding of Fig. 3 is described below without describing all possible variations.
[0058] Before being encoded, the current original image of the original video sequence can undergo pre-processing. For example, in step 301, a color transformation is applied to the current original picture (e.g., from RGB 4:4:4 to YCbCr 4:2:0) or a remapping is applied to the current original picture components to obtain a signal distribution more resilient to compression (e.g., using histogram equalization of one of the color components). In addition, pre-processing 301 may include resampling (down-sampling or up-sampling). Resampling may be applied to some pictures so that the generated bitstream may contain pictures of the original size and pictures of another size. Resampling generally consists of down-sampling and is used to reduce the bitrate of the generated bitstream. Nevertheless, up-sampling is also possible. The RPR tool allows to manage the resampled pictures during the motion estimation / compensation process. The pictures obtained by pre-processing are referred to as pre-processed pictures in the following.
[0059] Encoding the preprocessed picture begins with the division of the preprocessed picture during step 302, as described in connection with Figure 2. Thus, the preprocessed picture is divided into CTUs, CUs, PUs, TUs, etc. For each block, the encoding module determines a coding mode between intra prediction and inter prediction.
[0060] Intra prediction consists of predicting pixels of the current block from a predictive block derived from pixels of reconstructed blocks located in the causal neighborhood of the current block to be coded, according to an intra prediction method, during step 303. The results of intra prediction are a prediction direction indicating which pixels of the neighboring blocks to use, and a residual block resulting from the calculation of the difference between the current block and the predictive block.
[0061] Inter prediction consists of predicting pixels of a current block of a current picture from a block of pixels (called a reference block) of a picture before or after the current picture (this picture is called a reference picture). During the coding of a current block by 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 is determined that indicates the position of the reference block in the reference picture. This motion vector is used during a motion compensation step 305, during which a residual block is calculated in the form of the difference between the current block and the reference block. Generally, motion estimation and motion compensation are performed at a sub-pixel resolution, for example 1 / 16 pixel resolution, to ensure a good accuracy of the motion vectors. Performing motion estimation and motion compensation at sub-pixel resolution requires an interpolation of the current picture and the reference picture.
[0062] In the first video compression standards, the unidirectional inter prediction mode described above was the only inter mode available. As video compression standards have evolved, the family of inter modes has grown significantly and now includes many different inter modes.
[0063] During a selection step 306, the encoding module selects from among the tested prediction modes (intra prediction modes, inter prediction modes) the prediction mode that optimizes the compression performance according to a rate / distortion optimization criterion (ie, the RDO criterion).
[0064] Once a prediction mode is selected, the residual block is transformed during step 307 and quantized during step 309. It should be noted that the encoding module can skip the transformation and directly apply the quantization to the untransformed residual signal. If the current block is coded according to an intra prediction mode, the prediction direction and the transformed and quantized residual block are coded by an entropy encoder during step 310. If the current block is coded according to inter prediction, the motion vector of the block is predicted, if appropriate, from a prediction vector selected from a set of motion vectors corresponding to reconstructed blocks located near the block to be coded. Then, motion information is coded by an entropy encoder during step 310 in the form of a motion residual and an index for identifying the prediction vector. The transformed and quantized residual block is coded by an entropy encoder during step 310. It should be noted that the encoding module can bypass both the transformation and the quantization, i.e. the entropy coding is applied to the residual without applying a transformation or quantization process. The result of the entropy coding is inserted into the coded video stream 311.
[0065] An encoded video stream may comprise several headers, such as a sequence header, at least one picture header and / or a slice header. The sequence header, also called a Sequence Parameter Set (SPS), contains information common to all parts of a video sequence. For example, an SPS comprises information representative of the chroma format of a picture in the sequence and information representative of the relative position of the chroma samples with respect to the luma samples. The picture header refers to one Picture Parameter Set (PPS), which comprises information common to several pictures of a video sequence, but not necessarily to all pictures of the video sequence. For example, the size of a picture may be signaled in a PPS. The slice header contains information common to all blocks included in a slice. For example, a slice header or a picture header may comprise an index indicating which PPS should be used to decode the slice.
[0066] Metadata such as a Supplemental Enhancement Information (SEI) message may be added to the encoded video stream 311. For example, a Supplemental Enhancement Information (SEI) message, as defined in standards such as AVC, HEVC, or VVC, is a data container that includes metadata associated with and providing information about a video stream.
[0067] After the quantization step 309, the current block is reconstructed so that the pixels corresponding to it can be used for future prediction. This reconstruction phase is also called a prediction loop. Thus, inverse quantization is applied to the transformed and quantized residual block during step 312 and an inverse transform is applied during step 313. Depending on the prediction mode used for the block obtained during step 314, a prediction block of the block is reconstructed. If the current block is coded according to an inter prediction mode, the coding module applies, if appropriate, motion compensation using the motion vector of the current block to identify a reference block of the current block during step 316. If the current block is coded according to an intra prediction mode, the prediction direction corresponding to the current block is used to reconstruct the reference block of the current block during step 315. The reference block and the reconstructed residual block are added to obtain a reconstructed current block.
[0068] After reconstruction, in-loop filtering intended to reduce coding artifacts is applied to the reconstructed blocks during step 317. This filtering is called in-loop post-filtering because it is performed in the prediction loop in order to obtain the same reference image at the encoder as the decoder, thus avoiding drift between the encoding and decoding processes. As mentioned before, in-loop filtering tools include deblocking filtering, SAO and ALF.
[0069] The purpose of deblocking filtering is to attenuate discontinuities at block boundaries due to quantization differences between blocks. Deblocking filtering is an adaptive filtering that can be activated or deactivated and when activated can take the form of a high-complexity deblocking filtering based on a separation filter with a dimension containing six filter coefficients, hereinafter called strong deblocking filter (SDBF), and a low-complexity deblocking filtering based on a separation filter with one dimension containing four coefficients, hereinafter called weak deblocking filter (WDBF). SDBF strongly attenuates discontinuities at block boundaries that can spoil spatial high frequencies present in the original picture. WDBF weakly attenuates discontinuities at block boundaries, which makes it possible to preserve high spatial frequencies present in the original picture, but is less effective against discontinuities artificially created by quantization. The decision to filter or not and, in case of filtering, the type of filter used depends, among other things, on the values of the pixels at the boundaries of the blocks to be filtered.
[0070] Parameters representing a deblocking filter are introduced into the encoded video stream 311 during an entropy coding step 310 .
[0071] SAO filtering takes two classifications with two different objectives. The objective of the first classification, called edge offset, is to compensate for the effects of quantization on edges within a block. SAO filtering with edge offset involves classifying the samples of the reconstructed image according to four categories corresponding to four respective types of edges. Each type of edge is associated with an offset value that is added to the samples during SAO filtering.
[0072] The second classification of SAO is called band offset, whose purpose is to compensate for the effects of quantization of samples that typically belong to a range of values (i.e., a band). In band offset filtering, all possible values of a sample, which for an 8-bit video stream are most often between "0" and "255", are divided into bands of values (e.g., 32 bands of 8 values). From this band, a set of consecutive bands (e.g., 4) is selected to be corrected with an offset. When a sample has a value that is in one of the four bands of values to be offset, the offset value is added to the value of the sample. In the usual design of SAO, each component of a pixel (also known as each sample) is processed independently, without taking into account the strong correlation that exists between the different components.
[0073] In recent coding tools, something called Cross-Component Sample Adaptive Offset (CCSAO) has been proposed in non-patent document 1 "CW. Kuo, X. Xiu, Y.-W. Chen, H.-J. Jhu, W. Chen, X. Wang, "AHG12: Cross-component Sample Adaptive Offset", JVET-V0153, May 2021, Teleconference" and further described in "Che-Wei Kuo, Xiaoyu Xiu, Yi-Wen Chen, Hong-Jheng Jhu, Wei Chen, Xianglin Wang, "EE2-5.1: Cross-component Sample Adaptive Offset", document JVET-W0066, 23rd JVET Meeting, by teleconference, 7-16 July 2021." These correlations are better taken into account. To do so, similar to SAO, the CCSAO tool classifies the reconstructed pixels into different categories, appropriately derives one offset for each category, and adds the offset to the reconstructed samples that fall into that category. However, unlike SAO, which classifies each component of a pixel in a band without considering the other components, the CCSAO tool utilizes all three components to classify the current sample into different categories.
[0074] More precisely, for a given pixel, three candidate samples are selected to classify the given pixel into different categories, i.e., one collocated luma sample Y col , 1 colocated chroma sample U col and one colocated chroma sample V col Then, the sample values of these three selected collocated samples are divided into three different bands. Y , band U , band V}, and the joint index i is used to indicate the category of a given pixel. band Y =(Y col N Y )>>BD band U =(U col N U )>>BD band V =(V col N V )>>BD i=band Y ·(N U N V )+band U N V +band V . {N Y ,N U ,N V} are {Y col ,U col ,V col} where BD is the number of equal bands that apply to the entire range, and BD is the intra-coding bit depth.
[0075] For some categories, one offset is signaled and added to the reconstructed samples that fall into that category, which can be formulated as follows: C' rec =Clip1(C rec +σ CCSAO [i]) C rec and C' rec are the reconstructed samples before and after the CCSAO is applied, respectively. σ CCSAO [i] is the value of the CCSAO offset applied to the sample in the i-th category.
[0076] In the current design, the colocated luma samples Y col can be selected from nine candidate locations, while the collocated chroma sample U col and V col) positions are fixed as shown in FIG. 6. FIG. 6 represents multiple positions that can be taken by luma samples (left part) compared to the fixed positions of chroma samples (center and right parts). One motivation for this design of CCSAO is intended to compensate for the effect of the eventual difference in size between the luma and chroma components. Indeed, when downsampling chroma, the positions of the chroma samples relative to the original samples and the luma samples must be selected. The chroma sample positions do not have to be strictly aligned with the center position (4 in FIG. 6), but may be closer to positions "0", "1", "2", "3", "5", "6", "7", or "8". The candidate position that offers the best rate-distortion compromise is selected in the set of nine positions and transmitted in the bitstream.
[0077] Similar to SAO, CCSAO is applied at the encoder side in step 317 and at the decoder side in step 417 .
[0078] The decision to use SAO filtering, and when SAO filtering is used, SAO parameters such as the type of SAO filtering (SAO edge offset, SAO band offset and / or CCSAO) and offset value are determined for each CTU during the encoding process by rate / distortion optimization.
[0079] Parameters describing the activation or deactivation of SAO / CCSAO and the characteristics of SAO / CCSAO when activated are introduced into the coded video stream 311 at slice and block level during the entropy coding step 310.
[0080] The objective of the ALF is to minimize the mean squared error between the original and decoded samples by using a Wiener-based adaptive filter (note that the ALF is generally tuned by the encoder to minimize the mean squared error, although it can be used for other purposes). The ALF is placed at the last processing stage of each picture and can be seen as a tool that catches and corrects artifacts from the previous stage. The ALF process consists of selecting one out of 25 filters for each 4x4 block of the image. To do this, each block is classified into one of 25 categories based on the local gradient direction and activity. Each filter is derived from a diamond-shaped filter. The ALF filter parameters are signaled in an Adaptation Parameter Set (APS), which is a container for transporting several coding parameters. In one APS, up to 25 sets of luma filter coefficients and clipping value indexes, as well as up to 8 sets of chroma filter coefficients and clipping value indexes, can be signaled. To reduce bit overhead, filter coefficients of different classifications for the luma component may be merged. In the slice header, the index of the APS used for the current slice is signaled.
[0081] In the slice header, up to 7 APS indices can be signaled to specify the luma filter set used for the current slice. The filtering process can be further controlled at the block level. A flag is always signaled to indicate whether the ALF is applied to the luma block. The luma block can select a filter set among 16 fixed filter sets and a filter set from the APS. A filter set index is signaled for the luma block to indicate which filter set is applied. The 16 fixed filter sets are predefined and hard-coded in both the encoder and the decoder.
[0082] For chroma components, the APS index is signaled in the slice header to indicate the chroma filter set being used for the current slice. At the block level, if there is more than one chroma filter set in the APS, a filter index is signaled for each chroma block.
[0083] Once the blocks are reconstructed, they are inserted into a reconstructed picture stored in a memory 319 of a reconstructed image corresponding to the DPB during step 318. The reconstructed image so stored can serve as a reference image for other images to be coded.
[0084] When RPR is used, luma and chroma samples from the picture stored in the DPB (at least a part of the picture) are resampled in step 320 when used for motion estimation and compensation. Indeed, when a coding unit of a current picture is coded in inter mode from a reference picture, a reference scaling ratio pair RS (RscaleX;RscaleY) is determined, which is composed of the ratio between the width of the current picture and the width of the reference picture (RscaleX) and the ratio between the height of the current picture and the height of the reference picture (RscaleY), respectively. Each component is resampled separately. The reference scaling ratio RS and the sub-pel motion vectors allow to calculate, for each component, the horizontal and vertical phases and to select the coefficients of the resampling filter used by the motion compensation process to build the prediction block. When the reference scaling ratio RS is equal to (1;1), the phase is the same for all prediction samples of a component and depends only on the motion vector value. When the reference scaling ratio RS is not equal to (1;1), the phase in a component may vary from prediction sample to prediction sample depending on the value of the reference scaling ratio RS, the motion vector and the position of the prediction sample considered. However, whatever the components, always the same reference scaling ratio is considered. Figure 7 represents the horizontal phase applied to predicted samples within a line of a picture for a reference scaling ratio RS equal to (1;1) and a reference scaling ratio RS equal to (0.66;0.66).
[0085] In some implementations, the resampling step (320) and the sub-pixel interpolation step of the motion compensation step (305) can be combined into a single resampling interpolation step, i.e. the reference scaling ratio RS and the sub-pel motion vector allow to calculate the horizontal and vertical phases together for each sample of each component, to select the coefficients of the horizontal and vertical filters, and to directly obtain the resampled and interpolated prediction block. In fact, as shown in Figure 7, the phase can vary with the position of the sample prediction. Again, whatever the component, always the same reference scaling ratio is taken into account.
[0086] As already mentioned above, in the current design of RPR, the same resampling ratio is applied to the luma and chroma components. If the resampling is downsampling, one possible effect of applying the same resampling step (or a combined resampling-interpolation step) to luma and chroma is to accentuate the downsampling of the already downsampled chroma components.
[0087] Figure 4 illustrates diagrammatically a method for decoding an encoded video stream 311, encoded according to the method described in relation to Figure 3, executed by a decoding module. Variations of this method for decoding are contemplated, but for the sake of clarity, the method for decoding of Figure 4 is described below without describing all the possible variations.
[0088] The decoding is performed block by block. For the current block, the decoding begins with entropy decoding of the current block during step 410. The entropy decoding makes it possible to obtain the prediction mode of the block.
[0089] If the block is coded according to an inter prediction mode, entropy decoding makes it possible to obtain, where appropriate, a prediction vector index, a motion residual and a residual block. During step 408, a motion vector is reconstructed for the current block using the prediction vector index and the motion residual.
[0090] If the block is coded according to an intra prediction mode, the entropy decoding allows to obtain the prediction direction and the residual block. Steps 412, 413, 414, 415, 416 and 417 implemented by the decoding module are all identical to steps 312, 313, 314, 315, 316 and 317 implemented by the coding module, respectively. In step 418, the decoded block is 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 identical to the picture stored in the DPB 319 by the coding module during the coding of said given picture. The decoded picture may also be output by the decoding module, for example for display. When RPR is activated, the samples of (at least part of) the picture used as a reference picture are resampled in step 420 to the size of the predicted picture. The resampling step (420) and the motion compensation step (416) can be combined into one single sample interpolation step in some implementations.
[0091] The decoded image may further undergo post-processing in step 421. Post-processing may include inverse color conversion (e.g., YCbCr 4:2:0 to RGB 4:4:4 conversion), inverse mapping to perform the inverse of the remapping process performed in the pre-processing of step 301, post-filtering to improve the reconstructed picture based on filter parameters provided in the SEI message, and / or resampling, for example, to adjust the output image to display constraints.
[0092] FIG. 5A illustrates an example of a context in which the following embodiments may be implemented.
[0093] 4A, system 51, which may be a camera, a storage device, a computer, a server, or any device capable of delivering a video stream, transmits a video stream to system 53 using communication channel 52. The video stream is encoded and transmitted by system 51, or is received and / or stored by system 51 and then transmitted. Communication channel 52 may be a wired (e.g., Internet or Ethernet) or wireless (e.g., WiFi, 3G, 4G, or 5G) network link.
[0094] The system 53, which may be, for example, a set-top box, receives and decodes the video stream to produce a sequence of decoded pictures.
[0095] The obtained sequence of decoded pictures is then transmitted using a communication channel 54, which may be a wired or wireless network, to a display system 55. The display system 55 then displays the images.
[0096] In one embodiment, the system 53 is included in a display system 55. In that case, the system 53 and the display 55a are included in a TV, a computer, a tablet, a smartphone, a head mounted display, or the like.
[0097] Fig. 5B shows a schematic example of a hardware architecture of a processing module 500 capable of implementing an encoding module or a decoding module capable of implementing the encoding method of Fig. 3 and the decoding method of Fig. 4, respectively, modified according to different aspects and embodiments. The encoding module is included in system 51, for example, if this device is responsible for encoding a video stream. The decoding module is included in system 53, for example. The processing module 500 includes, as non-limiting examples, a processor or central processing unit (CPU) 5000, including one or more microprocessors, general purpose computers, special purpose computers, and processors based on multi-core architectures, connected by a communication bus 5005; a random access memory (RAM) 5001; a read only memory (ROM) 5002; and a memory device such as an electrically erasable programmable read-only memory (EEPROM), a read only memory (ROM), a programmable read-only memory (PROM), a random access memory (RAM), a dynamic random access memory (DRAM), a static random access memory (SRAM), a flash, a magnetic disk drive, and / or an optical disk drive, or a secure digital (SD) card reader and / or a hard disk drive. The system includes a storage unit 5003, which may include non-volatile memory and / or volatile memory, including but not limited to a storage media reader such as a storage drive (HDD) and / or a network-accessible storage device, and at least one communication interface 5004 for exchanging data with other modules, devices or equipment.The communication interface 5004 may include, but is not limited to, a transceiver configured to transmit and receive data over a communication channel. The communication interface 5004 may include, but is not limited to, a modem or a network card.
[0098] If the processing module 500 implements a decoding module, the communications interface 5004 may, for example, enable the processing module 500 to receive an encoded video stream and provide a sequence of decoded pictures. If the processing module 500 implements an encoding module, the communications interface 5004 may, for example, enable the processing module 500 to receive and encode a sequence of original video data and provide an encoded video stream.
[0099] The processor 5000 can execute instructions loaded into the RAM 5001 from the ROM 5002, an external memory (not shown), a storage medium, or a communication network. When the processing module 500 is powered on, the processor 5000 can read instructions from the RAM 5001 and execute them. These instructions form a computer program that causes the processor 5000 to perform, for example, the decoding method described in relation to Fig. 4 or the encoding method described in relation to Fig. 3, the decoding method and the encoding method including various aspects and embodiments described later in this specification.
[0100] All or part of the algorithms and steps of the encoding or decoding methods may be implemented in software form by execution of a set of instructions by a programmable machine such as a DSP (digital signal processor) or a microcontroller, or in hardware form by machines or dedicated components such as an FPGA (field-programmable gate array) or an ASIC (application-specific integrated circuit).
[0101] FIG. 5D illustrates a block diagram of an example of a system 53 in which various aspects and embodiments are implemented. The system 53 may be embodied as a device including various components described below and configured to perform one or more of the aspects and embodiments described herein. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, and head-mounted displays. The elements of the system 53, alone or in combination, may be embodied in a single integrated circuit (IC), multiple ICs, and / or separate components. For example, in at least one embodiment, the system 53 comprises a processing module 500 that implements a decoding module. In various embodiments, the system 53 is communicatively coupled to one or more other systems or other electronic devices, for example, via a communication bus or through dedicated input and / or output ports. In various embodiments, the system 53 is configured to implement one or more of the aspects described herein.
[0102] Input to processing module 500 may be provided via various input modules, as shown in block 531. Such input modules may include, but are not limited to, (i) a radio frequency (RF) module, for example, for receiving RF signals transmitted over the air from a broadcast station, (ii) a component (COMP) input module (or set of COMP input modules), (iii) a universal serial bus (USB) input module, and / or (iv) a High Definition Multimedia Interface (HDMI) input module. Other examples include composite video, not shown in FIG. 5D.
[0103] In various embodiments, the input modules of block 531 have associated respective input processing elements as known in the art. For example, the RF module may be associated with elements suitable for (i) selecting a desired frequency (also referred to as selecting a signal or band-limiting a signal to a frequency band), (ii) down-converting the selected signal, (iii) band-limiting again to a narrower frequency band to select a signal frequency band, which in certain embodiments may be referred to (for example) as a channel, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired stream of data packets. The RF module of various embodiments includes one or more elements that perform these functions, such as a frequency selector, a signal selector, a band limiter, a channel selector, a filter, a down-converter, a demodulator, an error corrector, and a demultiplexer. The RF portion may include, for example, a tuner that performs various of these functions, including down-converting a received signal to a lower frequency (e.g., an intermediate frequency or a frequency close to baseband) or to baseband. In one embodiment of a set-top box, the RF module and its associated input processing elements receive RF signals transmitted over a wired (e.g., cable) medium and perform frequency selection by filtering, downconverting, and refiltering to a desired frequency band. Various embodiments rearrange the order of the above-described (and other) elements, remove some of these elements, and / or add other elements that perform similar or different functions. Adding elements may include inserting elements between existing elements, such as, for example, inserting amplifiers and analog-to-digital converters. In various embodiments, the RF module includes an antenna.
[0104] Additionally, the USB and / or HDMI modules may include respective interface processors for connecting the system 53 to other electronic devices via USB and / or HDMI connections. It should be understood that various aspects of the input processing, e.g., Reed-Solomon error correction, may be performed, for example, in a separate input processing IC or within the processing module 500, as appropriate. Similarly, aspects of the USB or HDMI interface processing may be implemented in a separate interface IC or within the processing module 500, as appropriate. The demodulated, error corrected and demultiplexed stream is provided to the processing module 500.
[0105] The various elements of system 53 may be provided within a unitary housing, where the various elements may be interconnected and transmit data between them using any suitable connection arrangement, such as an internal bus known in the art, including an Inter-IC (I2C) bus, wiring, and printed circuit boards. For example, in system 53, processing module 500 is interconnected to other elements of system 53 described above by bus 5005.
[0106] The communication interface 5004 of the processing module 500 enables the system 53 to communicate over a communication channel 52. As already mentioned above, the communication channel 52 may be implemented, for example, in a wired and / or wireless medium.
[0107] Data is streamed or otherwise provided to the system 53 in various embodiments using a wireless network such as a Wi-Fi network, e.g., IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). The Wi-Fi signal in these embodiments is received by a communication channel 52 and a communication interface 5004 adapted for Wi-Fi communication. The communication channel 52 in 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. In other embodiments, the RF connection of the input block 531 is used to provide streaming data to the system 53. As indicated above, various embodiments provide data in a non-streaming manner. Additionally, various embodiments use wireless networks other than Wi-Fi, e.g., a cellular network or a Bluetooth network.
[0108] System 53 can provide output signals to various output devices including a display system 55, speakers 56, and other peripheral devices 57. Display system 55 in various embodiments includes one or more of a touch screen display, an organic light-emitting diode (OLED) display, a curved display, and / or a foldable display, for example. Display 55 can be for a television, a tablet, a laptop, a mobile phone, a head-mounted display, or other device. Display system 55 can also be integrated with other components (e.g., like a smartphone) or separate (e.g., an external monitor for a laptop). Other peripheral devices 57 include one or more of a standalone digital video disc (or digital versatile disc) (DVR in both terms), a disc player, a stereo system, and / or a lighting system, in various examples of embodiments. Various embodiments use one or more peripheral devices 57 that provide functionality based on the output of system 53. For example, a disc player performs the function of playing the output of system 53.
[0109] In various embodiments, control signals are communicated between the system 53 and the display system 55, speakers 56, or other peripheral devices 57 using signaling such as AV.Link, Consumer Electronics Control (CEC), or other communication protocols that allow control between devices with or without user intervention. The output devices can be communicatively coupled to the system 53 via dedicated connections through respective interfaces 532, 533, and 534. Alternatively, the output devices can be connected to the system 53 using communication channel 52 via communication interface 5004, or using a dedicated communication channel corresponding to communication channel 54 of FIG. 5A via communication interface 5004. The display system 55 and speakers 56 can be integrated into one unit with other components of the system 53 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.
[0110] The display system 55 and the speakers 56 may alternatively be separate from one or more of the other components. In various embodiments in which the display system 55 and the speakers 56 are external components, the output signals may be provided via dedicated output connections including, for example, an HDMI port, a USB port, or a COMP output.
[0111] FIG. 5C illustrates a block diagram of an example of a system 51 in which various aspects and embodiments are implemented. System 51 is very similar to system 53. System 51 may be embodied as a device including various components described below and configured to perform one or more of the aspects and embodiments described herein. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, cameras, and servers. The elements of system 51, alone or in combination, may be embodied in a single integrated circuit (IC), multiple ICs, and / or separate components. For example, in at least one embodiment, system 51 comprises one processing module 500 that implements an encoding module. In various embodiments, system 51 is communicatively coupled to one or more other systems or other electronic devices, for example, via a communication bus or through dedicated input and / or output ports. In various embodiments, system 51 is configured to implement one or more of the aspects described herein.
[0112] Input to the processing module 500 may be provided via various input modules as shown in block 531 already described with respect to FIG. 5D.
[0113] The various elements of system 51 may be provided within a unitary housing, where the various elements may be interconnected and transmit data between them using any suitable connection arrangement, such as an internal bus known in the art, including an Inter-IC (I2C) bus, wiring, and printed circuit boards. For example, in system 51, processing module 500 is interconnected to other elements of system 51 described above by bus 5005.
[0114] The communication interface 5004 of the processing module 500 enables the system 51 to communicate over a communication channel 52 .
[0115] Data is streamed or otherwise provided to the system 51 in various embodiments using a wireless network such as a Wi-Fi network, e.g., IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). The Wi-Fi signal in these embodiments is received by a communication channel 52 and a communication interface 5004 adapted for Wi-Fi communication. The communication channel 52 in 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. In other embodiments, an RF connection of the input block 531 is used to provide streaming data to the system 51.
[0116] As noted 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.
[0117] The data provided to the system 51 can be provided in different formats. In various embodiments, these data are encoded and comply with known video compression formats such as AV1, VP9, VVC, HEVC, AVC, etc. In various embodiments, these data are raw data provided by a picture (and optionally audio) acquisition module connected to or included in the system 51. The processing module is then responsible for encoding these data.
[0118] System 51 can provide output signals to various output devices, such as system 53, which can store and / or decode the output signals.
[0119] Various implementations involve decoding. As used herein, "decoding" may encompass all or part of the processes performed on a received encoded video stream, e.g., to generate a final output suitable for a display. In various embodiments, such processes include one or more of the processes typically performed by a decoder, e.g., entropy decoding, inverse quantization, inverse transform, and prediction. In various embodiments, such processes may also or alternatively include processes performed by the decoder of the various implementations described herein, e.g., to determine the size of chroma components when RPR is applied, or to apply CCSOA when the chroma format is not 4:2:0.
[0120] Whether the phrase "decoding process" is intended to refer specifically to a work subset or to the broader decoding process as a whole will be clear based on the context of the specific description and will be well understood by one of ordinary skill in the art.
[0121] Various implementations involve encoding. Similar to the above discussion regarding "decoding," as used herein, "encoding" may encompass all or part of the processes performed on input video data to generate an encoded video stream, for example. In various embodiments, such processes include one or more of the processes typically performed by an encoder, such as, for example, partitioning, prediction, transforming, quantizing, and entropy encoding. In various embodiments, such processes may also or alternatively include processes performed by the encoder in various implementations described herein, for example, to determine the size of chroma components when RPR is applied, or to apply CCSAO when the chroma format is not 4:2:0.
[0122] Whether the phrase "encoding process" is intended to refer specifically to a task subset or to the broader encoding process as a whole will be clear based on the context of the specific description and will be well understood by one of ordinary skill in the art.
[0123] It should be noted that the syntax element names used herein are descriptive terms, and therefore do not exclude the use of other syntax element names.
[0124] Where a figure is presented as a flow diagram, it should be understood that the figure also provides a block diagram of the corresponding apparatus. Similarly, where a figure is presented as a block diagram, it should be understood that the figure also provides a flow diagram of the corresponding method / process.
[0125] Various embodiments refer to rate-distortion optimization. In particular, during the encoding process, a balance or trade-off between rate and distortion is usually considered. Rate-distortion optimization is usually formulated to minimize a rate-distortion function, which is a weighted sum of rate and distortion. There are different approaches to solving the rate-distortion optimization problem. For example, these approaches may be based on an extensive test of all encoding options, including all considered modes or coding parameter values, with a full evaluation of their coding costs and associated distortion of the reconstructed signal after coding and decoding. Also, faster approaches may be used to reduce the encoding complexity, in particular the calculation of approximate distortion based on a prediction or prediction residual signal rather than on the reconstructed signal. A mixture of these two approaches may also be used, such as by using approximate distortion for only some of the possible encoding options and full distortion for others. Other approaches evaluate only a subset of the possible encoding options. More generally, many approaches employ any of a variety of techniques to perform the optimization, but the optimization is not necessarily a full evaluation of both the coding cost and the associated distortion.
[0126] The implementations and aspects described herein may be implemented, for example, in a method or process, an apparatus, a software program, a data stream, or a signal. Even if discussed in the context of only a single implementation (e.g., discussed only as a method), the implementation of the discussed features may also be implemented in other forms (e.g., a device, an apparatus, or a program). For example, an apparatus may be implemented in suitable hardware, software, and firmware. A method may be implemented, for example, in a processor, where a processor refers to a general processing device including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, mobile phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end users.
[0127] References to "one embodiment" or "an embodiment" or "one implementation" or "an implementation," as well as other variations thereof, mean that a particular feature, structure, characteristic, etc. described in connection with that embodiment is included in at least one embodiment. Thus, the appearances of the phrases "in one embodiment" or "an embodiment" or "in one implementation" or "in an implementation," as well as other variations thereof, appearing in various places throughout this application are not necessarily all referring to the same embodiment.
[0128] Additionally, the application may refer to "determining" various information. Determining information may include, for example, one or more of estimating information, calculating information, predicting information, retrieving information from a memory, or retrieving information from, for example, another device, module, or user.
[0129] Additionally, the application may refer to "accessing" various information. Accessing information may include, for example, one or more of receiving information, retrieving information (e.g., from a memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.
[0130] Additionally, the application may refer to "receiving" various information. Receiving, like "accessing," is intended to be a broad term. Receiving information may include, for example, one or more of accessing information or retrieving information (e.g., from a memory). Furthermore, "receiving" generally involves in some manner, for example, an operation such as storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.
[0131] Use of any of the terms " / ", "and / or", "at least one of", "one or more", e.g., "A / B", "A and / or B", "at least one of A and B", "one or more of A and B" is intended to encompass the selection of only the first listed alternative (A), or the selection of only the second listed alternative (B), or the selection of both alternatives (A and B). As a further example, "A, B, and / or C" and "at least one of A, B, and C", "one or more of A, B, and C" are intended to encompass the selection of only the first listed alternative (A), or the selection of only the second listed alternative (B), or the selection of only the third listed alternative (C), or the selection of only the first and second listed alternatives (A and B), or the selection of only the first and third listed alternatives (A and C), or the selection of only the second and third listed alternatives (B and C), or the selection of all three alternatives (A, B, and C). This may be expanded to include as many of the items listed as would be apparent to one of ordinary skill in this and related arts.
[0132] Also, as used herein, the term "signaling" means to indicate something, especially to a corresponding decoder. For example, in certain embodiments, an encoder signals the use of some coding tools. In this way, in embodiments, the same parameters can be used at both the encoder and decoder sides. Thus, for example, an encoder can transmit a particular parameter to a decoder (explicit signaling) so that the decoder can use the same particular parameter. In contrast, if the decoder already has the particular parameter as well as other parameters, a non-transmitting signaling (implicit signaling) can be used to simply allow the decoder to know and select the particular parameter. By avoiding the transmission of any actual function, bit savings are realized in various embodiments. It will be understood that signaling can be achieved in various ways. For example, one or more syntax elements, flags, etc. are used in various embodiments to signal information to a corresponding decoder. The above relates to the verb form of the word "signal", which may also be used as a noun in this specification.
[0133] As will be apparent to one of ordinary skill in the art, implementations can result in a variety of signals formatted to carry information that can be, for example, stored or transmitted. Information can include, for example, instructions for performing a method or data generated by one of the described implementations. For example, a signal can be formatted to carry the encoded video stream and SEI message of the described embodiments. For example, such a signal can be formatted as an electromagnetic wave (e.g., using a radio frequency portion of the spectrum) or as a baseband signal. Formatting can include, for example, encoding the encoded video stream (or bitstream) and modulating a carrier wave with the encoded video stream. The information that the signal carries can be, for example, analog information or digital information. As is known, the signal can be transmitted over a variety of different wired or wireless links. The signal can be stored in a processor-readable medium.
[0134] Various embodiments may refer to a bitstream (or, equivalently, a stream). A bitstream may include, for example, any series or sequence of bits, and not necessarily data bits, for example, being transmitted, received, or stored.
[0135] FIG. 8 illustrates generally an example of a method for encoding a video sequence that includes at least two different chroma formats.
[0136] The method of FIG. 8 represents some details of the method of FIG.
[0137] In step 801, the processing module 500 of the system 51 receives an original picture. The original picture has an original size and an original chroma format. For example, the original size is 3840x2160 pixels and the original chroma format is 4:2:0 (i.e., the size of the luma component is 3840x2160 and the size of the two chroma components is 1920x1080). The original picture is, for example, a YUV picture.
[0138] In step 802, the processing module 500 of the system 51 determines whether the original picture can be resampled during encoding. In this embodiment, the resampling is downsampling, but a similar process can be applied when the resampling is upsampling. For example, the processing module determines the average variance of the picture and determines that resampling can be applied to the current picture if the variance is less than a predetermined threshold. If resampling can be applied to the original picture, step 802 is followed by step 803. If not, step 802 is followed by step 805.
[0139] In step 803, the processing module 500 of the system 51 determines a first resampling ratio RR luma In one embodiment, the resampling ratio is defined by two components: the first component RRH defines how the samples are resampled in the horizontal dimension (the ratio between the width of the original picture and the width of the resampled picture); the second component RRV defines how the samples are resampled in the vertical dimension (the ratio between the height of the original picture and the height of the resampled picture). For example, the first resampling ratio RR luma is equal to (RRH=2,RRV=2). The first resampling ratio RR luma The size of the luma component resulting from resampling by is therefore 1920x1080.
[0140] In step 804, the processing module 500 of the system 51 determines a first resampling ratio RR luma A second resampling ratio RR different from chroma Apply resampling to the two chroma components of the original picture using, for example, a second resampling ratio RR chroma is equal to (RRH=1,5,RRV=1,5). The second resampling ratio RR chroma The size of the chroma resulting from resampling by is therefore 1280x720.
[0141] The combination of the resampled versions of the luma and chroma components of the original picture makes it possible to obtain a resampled picture having a size equal to 1920x1080 and a chroma format equal to 4:3 / 2:3 / 2 (i.e. the luma size is 1920x1080 and the chroma size is 1280x720).
[0142] Please note that steps 801-804 are performed during step 301 of FIG.
[0143] Steps 801 to 804 are followed by the various encoding steps described in relation to figure 3. During these steps, the original or resampled picture is called the current picture. The current picture is the picture to be encoded.
[0144] Step 805 is performed during these steps, and in particular during the generation of the part of the encoded video stream 311 that corresponds to the current picture.
[0145] In step 805 , the processing module 500 of the system 51 signals the chroma format of the current picture in the encoded video stream 311 .
[0146] In a first embodiment of step 805, the processing module 500 of the system 51 inserts the syntax element pps_chroma_format_idc into the PPS to which the slice of the current picture refers.
[0147] [Table 1]
[0148] Table TAB1 represents the possible values that can be taken by the syntax element pps_chroma_format_idc. As can be seen, the 4:3 / 2:3 / 2 chroma format is added to the usual monochrome, 4:2:0, 4:2:2 and 4:4:4 chroma formats, which opens the possibility to chroma formats defined by means other than the SPS level syntax element called syntax element pps_chroma_format_idc or SPS_chroma_format_idc. The chroma format 4:4 / 3:4 / 3 makes it possible to obtain, for example, a picture with a size of the luma component equal to 1280x720 and a size of the chroma components equal to 960x540. Other means making it possible to define the chroma format could be, for example, the SEI message, the picture header or the slice header.
[0149] If step 805 follows directly from step 802, two variants of the first embodiment of step 805 are possible.
[0150] In a first variant, the processing module 500 of the system 51 inserts the syntax element pps_chroma_format_idc into the PPS referenced by the slice of the current picture to explicitly indicate the chroma format of the current picture.
[0151] In a second variant, the processing module 500 of the system 51 does not insert the syntax element pps_chroma_format_idc into the PPS referenced by the slice of the current picture. In the absence of the syntax element pps_chroma_format_idc in the PPS, the chroma format is assumed to be the chroma format specified by the syntax element sps_chroma_format_idc in the SPS.
[0152] In a third variant of the first embodiment of step 805, the syntax element sps_chroma_format_idc is not present in the SPS. In that case, the chroma format of the picture is specified exclusively by the syntax element pps_chroma_format_idc in the PPS.
[0153] In a fourth variant of the first embodiment of step 805, the syntax element sps_chroma_format_idc is present in the SPS. The chroma format of the picture is then specified by the syntax element pps_chroma_format_idc in the PPS, which specifies the chroma format of the original picture or the chroma format corresponding to the maximum picture size that can be found in the coded video stream.
[0154] In another variant, the current picture references a PPS, but also a picture header or a slice header, in which case the current picture chroma format is coded.
[0155] In a second embodiment of step 805, the processing module 500 of the system 51 implicitly signals the chroma format of the current picture using the syntax element sps_chroma_format_idc, which specifies the chroma format in the SPS from the maximum picture size in the video sequence and the information representing the current picture size in the PPS to which the slice of the current picture refers. The maximum picture size and the picture size of the current picture are determined by the first resampling ratio RR on the decoder side. luma In this second embodiment, the predefined association known by the encoder and decoder is the sps_chroma_format_idc value and the RR luma We combine each possible pair of chroma-formats. Table TAB2 gives examples of such associations.
[0156] [Table 2]
[0157] For example, in this table, the syntax element sps_chroma_format_idc specifies a chroma format equal to 4:2:0 and a first resampling ratio RR luma When the syntax element sps_chroma_format_idc specifies a chroma format equal to 4:2:2 and the first resampling ratio RR is equal to "2", the chroma format of the current picture is 4:3 / 2:3 / 2. luma When is equal to "2", the chroma format of the current picture is defined by other means such as an SEI message. luma If is equal to "4", the chroma format of the current picture is systematically 4:4:4. luma If equal to "1", the chroma format is the one specified by the syntax element sps_chroma_format_idc.
[0158] In one embodiment, a syntax element SPS_multiple_chroma_formats_allowed is inserted into the SPS to indicate whether chroma formats change in the encoded video stream.
[0159] In a variant of step 805, the chroma format of the current picture is constrained to predefined values, which corresponds for example to removing the chroma format "other" from tables TAB1 and TAB2.
[0160] In a variation of step 805, the chroma format of the current picture complies with the allowed ratios between the width of the original picture and the width of the current picture, and between the height of the original picture and the height of the current picture.
[0161] As already mentioned, in general, due to downsampling of chroma samples, luma samples and chroma samples may not be aligned. This feature can be taken into account during encoding to improve coding efficiency. The positions of chroma samples relative to luma samples are generally specified in the SPS.
[0162] In step 806, the processing module 500 of the system 51 signals the location of the chroma samples relative to the luma samples in the current picture in the encoded video stream 311. Similar to step 805, step 806 is performed during the encoding steps described in relation to FIG. 3, in particular during the generation of the portion of the encoded video stream 311 that corresponds to the current picture.
[0163] In a first embodiment of step 806, the processing module 500 of the system 51 inserts the syntax element pps_chroma_sample_location_idc into the PPS to which the slice of the current picture refers.
[0164] [Table 3]
[0165] Table TAB3 represents possible values that can be taken by the syntax element pps_chroma_sample_location_idc. As can be seen, a number of predefined locations are explicitly defined, including "co-located" locations, which indicate that a chroma sample is aligned with a luma sample, and "centered" locations, which indicate that a chroma sample is between luma samples. FIG. 11A illustrates a schematic representation of centered locations of chroma samples (denoted "C" in the figure) between luma samples (denoted "L" in the figure) when the chroma format is 4:2:0. As can be seen in FIG. 11A, the location of each chroma sample is in the center of a square formed by four luma samples. FIG. 11B illustrates a schematic representation of co-located locations in which a chroma sample (denoted "C" in the figure) is co-located with a luma sample (denoted "L" in the figure) when the chroma format is 4:2:0. As can be seen in FIG. 11B, the location of each chroma sample corresponds to the location of a luma sample. "Other" indicates that the location of the chroma samples relative to the luma samples in the current picture is defined by means other than the syntax element pps_chroma_sample_location_idc or is undefined. Another means allowing to define the location of the chroma samples relative to the luma samples in the current picture could be an SEI message.
[0166] If step 806 directly follows step 802, two variants of the first embodiment of step 805 are possible.
[0167] In a first variant, the processing module 500 of the system 51 inserts a syntax element pps_chroma_sample_location_idc into the PPS referenced by the slice of the current picture to explicitly indicate the location of the chroma samples relative to the luma samples in the current picture.
[0168] In a second variant, the processing module 500 of the system 51 does not insert the syntax element pps_chroma_sample_location_idc into the PPS referenced by a slice of the current picture. If the syntax element pps_chroma_sample_location_idc is not present in the PPS, the chroma samples are considered to be located at a default location, e.g. aligned on the luma samples (corresponding to the location "colocated" in table TAB3).
[0169] In a third variant of the first embodiment of step 806, there is no syntax element in the SPS that indicates the location of the chroma samples relative to the luma samples in the current picture. In that case, the chroma format of the picture is specified exclusively by the syntax element pps_chroma_sample_location_idc in the PPS.
[0170] In a fourth variation of the first embodiment of step 806, a syntax element sps_chroma_sample_location_idc is present in the SPS to indicate the location of the chroma samples relative to the luma samples. The location of the chroma samples relative to the luma samples in the picture is then specified by the syntax element pps_chroma_sample_location_idc in the PPS, which specifies the location of the chroma samples relative to the luma samples in the original picture or the location of the chroma samples relative to the luma samples in the picture corresponding to the maximum picture size that can be found in the encoded video stream.
[0171] In a fifth variant of the first embodiment of step 806, if the chroma format indicated by the syntax element sps_chroma_format_idc is different from the chroma format indicated by the syntax element sps_chroma_format_idc in the PPS referenced by the current picture, the syntax element pps_chroma_sample_location_idc is signaled in the PPS. Otherwise, the ichi of the chroma sample relative to the luma sample in the current picture is the position specified by the syntax element sps_chroma_sample_location_idc in the SPS.
[0172] In another variant, the syntax element pps_chroma_sample_location_idc is signaled in the picture header or the slice header.
[0173] In a second embodiment of step 806, the processing module 500 of the system 51 uses the syntax element sps_chroma_sample_location_idc to implicitly signal the chroma format of the current picture from the maximum picture size in the video sequence and information representing the current picture size in the PPS to which the slice of the current picture refers. Again, the maximum picture size and the picture size of the current picture are calculated on the decoder side with a first resampling ratio RR luma In this second embodiment of step 806, the predefined association known by the encoder and decoder is the sps_chroma_format_idc value and the RR luma We combine each possible pair of chroma-formats. Table TAB4 provides examples of such associations.
[0174] [Table 4]
[0175] For example, in this table, the syntax element sps_chroma_sample_location_idc specifies a chroma format equal to 4:2:0 and a first resampling ratio RR luma When is equal to "2", the chroma sample is at position "3" relative to the luma sample.
[0176] In one embodiment, if the chroma format signaled (implicitly or explicitly) for the current picture is 4:4:4, the positions of the chroma samples relative to the luma samples take default values, e.g., the default value is "colocated" (the chroma samples are aligned (i.e., colocated) with the luma samples).
[0177] In one embodiment, if the chroma format of the original picture is 4:2:0 or the chroma format specified by the syntax element sps_chroma_format_idc is 4:2:0 and the chroma format signaled (implicitly or explicitly) for the current picture is 4:4:4, the positions of the chroma samples relative to the luma samples in the current picture take default values. For example, the default value is "colocated" (the chroma samples are aligned (i.e., collocated) with the luma samples). In another example, the default value is "centered" between the luma sample positions.
[0178] In one embodiment, the syntax element SPS_multiple_chroma_locations_allowed is inserted into the SPS to indicate whether the location of chroma samples relative to luma samples varies within the encoded video stream.
[0179] In the method embodiment of FIG. 8, steps 805 and 806 are applied by the processing module 500 of the system 51 after steps 801-804.
[0180] In the embodiment of the method of FIG. 8, only step 805 is applied by the processing module 500 of the system 51 after steps 801-804.
[0181] In the embodiment of the method of FIG. 8, only step 806 is applied by the processing module 500 of the system 51 after steps 801-804.
[0182] As can be seen, the method of FIG. 8 allows encoding a video sequence from original video data and includes coding a first picture of the video sequence using features related to chroma components of the first picture that are different from same features related to chroma components of a second picture of the video sequence, the features related to the chroma components representing a chroma format and / or a relative position of the chroma samples with respect to the luma samples.
[0183] Here, a sequence is defined as a set of consecutive pictures, and temporal prediction is possible between any pair of pictures of the set. In other words, all pictures of a sequence refer to a single SPS. For example, here, the first picture and the second picture refer to the same SPS.
[0184] For example, in one embodiment, the second picture is a reference picture to the first picture.
[0185] In addition, the method of FIG. 8 includes explicitly or implicitly signaling, for a first picture of the encoded video stream, information related to chroma components of the first picture that differs from information related to chroma components of a second picture of the encoded video stream.
[0186] FIG. 9 illustrates generally an example of a method for decoding an encoded video sequence that includes at least two different chroma formats.
[0187] The method of FIG. 9 illustrates some details of the method of FIG.
[0188] In step 901, a processing module 500 of the system 53 obtains a bitstream including at least a portion that represents a current picture. The processing module 500 of the system 53 also has access to the SPS and PPS that the current picture references.
[0189] In step 902, the processing module analyzes information representative of the chroma format of the current picture.
[0190] In a first embodiment of step 902, the processing module attempts to parse the syntax element pps_chroma_format_idc in the PPS as described in relation to step 805. If the syntax element pps_chroma_format_idc is present in the PPS, the processing module 500 of the system 53 parses the syntax element pps_chroma_format_idc. If the syntax element pps_chroma_format_idc is not present in the PPS, the processing module 500 of the system 53 infers that the chroma format of the current picture is the one indicated by the syntax element sps_chroma_format_idc in the SPS.
[0191] In a second embodiment of step 902, the processing module 500 of the system 53 parses the syntax element sps_chroma_format_idc specifying the chroma format in the SPS, the syntax element representing the maximum picture size in the encoded video stream, and the syntax element representing the current picture size in the PPS, and infers the chroma format of the current picture from these syntax elements and table TAB2.
[0192] In one embodiment, the processing module 500 of the system 53 parses the syntax element SPS_multiple_chroma_formats_allowed in the SPS.
[0193] In step 903, the processing module 500 of the system 53 receives information representing the positions of the chroma samples relative to the luma samples in the current picture in the encoded video stream 311.
[0194] In a first embodiment of step 903, the processing module 500 of the system 53 attempts to parse the syntax element pps_chroma_sample_location_idc in the PPS to which the slice of the current picture refers.
[0195] If the syntax element pps_chroma_sample_location_idc is present in the PPS, the processing module 500 of the system 53 parses this syntax element.
[0196] If the syntax element pps_chroma_sample_location_idc is not present in the PPS, the processing module 500 of the system 53 assumes that the chroma sample location is default (e.g., aligned on the luma sample corresponding to the location "colocate" in table TAB3) or that the location of the chroma sample relative to the luma sample is as specified by the syntax element sps_chroma_sample_location_idc in the SPS.
[0197] In a second embodiment of step 903, the processing module 500 of the system 53 parses the syntax element sps_chroma_sample_location_idc, the syntax element representing the maximum picture size in the video sequence, and the syntax element representing the current picture size in the PPS to which the slice of the current picture refers, and determines from these syntax elements and table TAB4 the relative location of the chroma samples with respect to the luma samples in the current picture.
[0198] In one embodiment, the processing module parses the syntax element SPS_multiple_chroma_locations_allowed in the SPS.
[0199] Of course, application of step 902 (respectively 903 ) by processing module 500 of system 53 depends on application of step 805 (respectively 806 ) by processing module 500 of system 51 .
[0200] As can be seen, the method of FIG. 9 enables decoding of a video sequence representing original video data, including decoding a first picture of the video sequence having features relating to chroma components of the picture that differ from same features relating to chroma components of a second picture of the video sequence, the features relating to the chroma components representing a chroma format and / or a relative position of the chroma samples with respect to the luma samples.
[0201] Again, a sequence is defined here as a set of consecutive pictures, where temporal prediction is possible between any pair of pictures in the set.
[0202] In one embodiment, the second picture is a reference picture to the first picture.
[0203] In addition, the method of FIG. 9 includes analyzing, for a first picture of the encoded video stream, information related to chroma components of the first picture that may differ from information related to chroma components of a second picture of the encoded video stream.
[0204] As already mentioned above in this document, the application of RPR, and in particular the application of resampling of reference pictures in RPR (or the application of a combination of resampling and interpolation), depends on a reference scaling ratio pair RS(RscaleX;RscaleY). In fact, the reference scaling ratio RS makes it possible to select, for each component, the coefficients of the resampling filters (respectively single filters) that are used by the motion compensation process to calculate the phase and to construct the resampled prediction block (respectively used by the motion compression process to directly construct the resampled and interpolated prediction block). In the context of a sequence containing various chroma formats, it is no longer possible to consider only one reference scaling ratio pair RS(RscaleX;RscaleY) for all components.
[0205] FIG. 10 shows schematic details regarding the application of RPR.
[0206] The process of FIG. 10 is applied by processing module 500 of system 51 during the motion estimation / compensation step (304 / 305 in FIG. 3) of the encoding process, or by processing module 500 of system 53 during the motion compensation step (416 in FIG. 4) of the decoding process.
[0207] In step 1001, the processing module 500 determines whether the current picture has the same size as the reference picture used for the temporal prediction of the blocks of the current picture. Here, it is considered that two pictures with the same size have the same chroma format.
[0208] If yes, the processing module 500 applies step 1003. During step 1003, for each block of the current picture that is inter predicted, the processing module 500 determines the offset and coefficients of the resampling filter (or a single filter) considering the same reference scaling ratio pair RS for luma and chroma (in this case RS=(1;1)). For example, the luma interpolation process described in section 8.5.6.3.2 and the chroma interpolation process described in section 8.5.6.3.4 of document JVET-T2001-v1, Versatil Video Coding Editorial Refinements on draft 10, Joint Video Experts Team (JVET) of ITU-T SG16 WP 3 and ISO / IEC JTC 1 / SC29, 20th meeting, by teleconference, 7-16 October 2020, hereinafter simply referred to as JVET-T2001, are applied with the same reference scaling ratio pair RS. These two interpolation processes are applied during motion compensation and are adapted to perform either an interpolation process or a combined resampling / interpolation process.
[0209] If the reference picture has a different size than the current picture, the processing module 500 applies step 1002. In step 1002, the processing module 500 determines whether the reference scaling ratio pair RS of the current picture is the same for luma and chroma (i.e., RS luma =RS chroma , where RS luma is the luma reference scaling ratio, RS chroma is the reference scaling ratio for chroma). RS luma =RS chroma If so, the processing module 500 applies step 1003 already described.
[0210] RS luma ≠RS chromaIf so, the processing module applies step 1004. During step 1004, for each block of the current picture that is inter predicted, the processing module 500 applies a reference scaling ratio for luma vs. RS luma and reference scaling ratio vs. RS chroma The offset and coefficients of the resampling filter (or a single filter) are determined by taking chroma into account. For example, the luma interpolation process described in section 8.5.6.3.2 of document JVET-T2001 uses the reference scaling ratio vs. RS luma The chroma interpolation process, which is applied using the reference scaling ratio RS and is described in section 8.5.6.3.4 of the document JVET-T2001, is chroma It is applied using
[0211] As seen above, CCSAO is a tool that is affected by the size difference between luma and chroma. In the current design of CCSAO, nine different positions of the luma sample (i.e., positions “0”, “1”, “2”, “3”, “5”, “6”, “7” or “8” in FIG. 6) are systematically tested to compensate for the eventual drift between the luma sample and the chroma sample due to the chroma resampling. Once selected, the index of the selected position is coded in the bitstream. Before entropy coding, the number of bits required to code an index that can take nine different values is “4” bits, which can be considered as a bad coding efficiency if it is not justified to have such granularity in the index.
[0212] In particular, when the chroma format is 4:4:4, it is generally not necessary to test 9 positions, and similarly for the chroma format 4:2:2.
[0213] In one embodiment, the number of positions and the positions themselves depend on the chroma format applied in the CCSAO.
[0214] In one embodiment, The position of the "9" in Figure 6 remains at 4:2:0. Positions 0, 1, 2 and 6, 7 and 8 are maintained at 4:2:2. Only position 4 remains 4:4:4.
[0215] In that case, only 2 bits are needed to code the index in 4:2:0, and no bits are needed for 4:4:4 since a single position is implicit.
[0216] In one embodiment, a single position for 4:4:4 is the default / implicit position known by the encoder and decoder, but not necessarily position 4.
[0217] Several embodiments have been described above. The features of these embodiments may be provided alone or in any combination. In addition, the embodiments may include one or more of the following features, devices, or aspects, across various claim categories and types, alone or in any combination. A bitstream or signal resulting from any of the various embodiments or variations thereof. Creating and / or transmitting and / or receiving and / or decoding bitstreams or signals according to various embodiments or variations thereof. A television, set-top box, mobile phone, smartphone, tablet or other electronic device implementing at least one of the described embodiments. A television, set-top box, mobile phone, smartphone, tablet or other electronic device that performs at least one of the described embodiments and displays the resulting picture (e.g., using a monitor, screen, or other type of display). A television, set-top box, mobile phone, smartphone, tablet or other electronic device that tunes to a channel (e.g., using a tuner) to receive a signal including an encoded video stream and executes at least one of the described embodiments. A television, set-top box, mobile phone, tablet, or other electronic device that receives a signal containing the encoded video stream wirelessly (e.g., using an antenna) and executes at least one of the described embodiments.
Claims
1. 1. A method for encoding a video sequence in video data, comprising coding a first picture of the video sequence with values of features associated with chroma components of the first picture that differ from values of the same features associated with chroma components of a second picture of the video sequence, the features associated with chroma components representing a chroma format and / or a relative position of a chroma sample with respect to a luma sample.
2. 1. A device for encoding a video sequence in video data, comprising: an electronic circuit configured to encode a first picture of the video sequence with values of features associated with chroma components of the first picture that differ from values of the same features associated with chroma components of a second picture of the video sequence, the features associated with chroma components representing a chroma format and / or a relative position of a chroma sample with respect to a luma sample.
3. The method of claim 1 or the device of claim 2, wherein at least one block of the first picture is temporally predicted from samples of the second picture.
4. 4. The method of claim 3 or the device of claim 3, wherein the chroma format of the first picture depends on values of a luma resolution ratio between a size of a luma component of the first picture and a size of a luma component of the second picture and a chroma resolution ratio between a size of the chroma component of the first picture and a size of the chroma component of the second picture, the luma resolution ratio and the chroma resolution ratio being different.
5. The method according to any one of claims 1 and 3 to 4 or the device according to any one of claims 2 to 4, wherein the chroma format of the first picture is signaled in a picture header, a slice header or a picture parameter set to which the first picture refers.
6. A method according to any one of claims 1 and 3 to 5 or a device according to any one of claims 2 to 5, wherein the chroma format indicated in a sequence header to which the video data refers indicates a chroma format associated with a maximum picture size of the video sequence or a chroma format of the video sequence.
7. The method according to any one of claims 1 and 3 to 6 or the device according to any one of claims 2 to 6, wherein the relative positions of chroma samples with respect to luma samples are signaled in a picture header, a slice header or a picture parameter set to which the first picture refers.
8. 8. The method of claim 7 when dependent on claim 6 or the device of claim 7 when dependent on claim 6, wherein the relative positions of chroma samples with respect to luma samples are signaled in the picture header or the slice header in response to the first picture having a chroma format different from the chroma format indicated in the sequence header.
9. The method of any one of claims 1 and 3 to 6 or the device of any one of claims 2 to 6, wherein in response to the chroma format of the first picture being 4:4:4, default values are given to the relative positions of chroma samples with respect to luma samples.
10. The method according to any one of claims 1 and 3 to 9 or the device according to any one of claims 2 to 9, wherein the chroma format of the first picture is one of 4:4:4 or 4:2:0 or 4:2:
2.
11. A method according to any one of claims 1 and 3 to 9 or a device according to any one of claims 2 to 9, wherein in response to the chroma format of the first picture being different from the chroma format of the video sequence, the chroma format of the first picture complies with an allowed ratio between a width of a picture of the video sequence and a width of the first picture, and between a height of a picture of the video sequence and a height of the first picture.
12. 1. A method for decoding a video sequence in video data, comprising: decoding a first picture of the video sequence having values of features associated with chroma components of the first picture that differ from values of the same features associated with chroma components of a second picture of the video sequence, the features relating to chroma components representing a chroma format and / or a relative position of a chroma sample with respect to a luma sample.
13. 1. A device for decoding a video sequence in video data, comprising: an electronic circuit configured to decode a first picture of the video sequence having values of features associated with chroma components of the first picture that differ from values of the same features associated with chroma components of a second picture of the video sequence, the features associated with chroma components representing a chroma format and / or a relative position of a chroma sample with respect to a luma sample.
14. The method of claim 12 or the device of claim 13, wherein at least one block of the first picture is temporally predicted from samples of the second picture.
15. 15. The method of claim 12 or 14 or the device of claim 13 or 14, wherein the chroma format of the first picture depends on values of a luma resolution ratio between a size of a luma component of the first picture and a size of a luma component of the second picture and a chroma resolution ratio between a size of the chroma component of the first picture and a size of the chroma component of the second picture, the luma resolution ratio and the chroma resolution ratio being different.
16. 16. The method of claim 12, 14 or 15 or the device of claim 13, 14 or 15, wherein the chroma format of the first picture is signaled in a picture header, a slice header or a picture parameter set to which the first picture refers.
17. A method according to any one of claims 12 and 14 to 16 or a device according to any one of claims 13 to 16, wherein a chroma format signaled in a sequence header to which the video data refers indicates a chroma format associated with a maximum picture size of the video sequence or a chroma format of the original video data.
18. A method according to any one of claims 12 or 14 to 17 or a device according to any one of claims 13 to 17, wherein the relative positions of chroma samples with respect to luma samples are indicated in a picture header, a slice header or a picture parameter set to which the first picture refers.
19. 19. The method of claim 18 when dependent on claim 17 or the device of claim 18 when dependent on claim 17, wherein in response to the chroma format of the first picture being different from the chroma format indicated in the sequence header, the relative positions of chroma samples with respect to luma samples are indicated in the picture header or the slice header.
20. 20. The method of claim 12 or any one of claims 14 to 19 or the device of any one of claims 13 to 19, wherein in response to the chroma format of the first picture being 4:4:4, default values are given to the relative positions of chroma samples with respect to luma samples.
21. The method according to any one of claims 12 or 14 to 20 or the device according to any one of claims 13 to 20, wherein the chroma format of the first picture is one of 4:4:4 or 4:2:0 or 4:2:
2.
22. 21. The method of claim 12 or any one of claims 14 to 20 or the device of any one of claims 13 to 20, wherein in response to the chroma format of the first picture being different from the chroma format of the video sequence, the chroma format of the first picture complies with an allowed ratio between a width of a picture of the video sequence and a width of the first picture, and between a height of a picture of the video sequence and a height of the first picture.
23. 1. A method comprising: Obtaining reconstructed pixels of the picture; classifying the reconstructed pixel into one of a plurality of categories based on a value of a luma sample of the reconstructed pixel and a value of a chroma sample of the reconstructed pixel, the value of the luma sample being dependent on a candidate position of the luma sample in the picture selected in a set of candidate positions; applying an offset to each sample of the reconstructed pixel based on the category into which the reconstructed pixel falls; A method, wherein a number of candidate positions in said set of candidate positions depends on a chroma format of said picture.
24. A device comprising an electronic circuit, the electronic circuit comprising: Obtaining reconstructed pixels of the picture; classifying the reconstructed pixel into one of a plurality of categories based on a value of a luma sample of the reconstructed pixel and a value of a chroma sample of the reconstructed pixel, the value of the luma sample being dependent on a candidate position of the luma sample in the picture selected in a set of candidate positions; applying an offset to each sample of the reconstructed pixel based on the category into which the reconstructed pixel is classified; A device, wherein the number of candidate locations in the set of candidate locations depends on a chroma format of the picture.
25. 25. The method of claim 23 or the device of claim 24, wherein the set comprises a single position when the chroma format is 4:4:
4.
26. 26. The method or device of claim 25, wherein the single position is a default position.
27. 27. The method of claim 23, 25 or 26 or the device of claim 24, 25 or 26, wherein the number of positions in the set is a function of a ratio between a number of chroma samples in the picture and a number of luma samples in the picture.
28. An encoding method comprising the method of any one of claims 23 or 25 to 27 or an encoding device comprising the device of any one of claims 24 to 27.
29. A decoding method comprising the method of any one of claims 23 or 25 to 27 or a coding device comprising a device of any one of claims 24 to 27.
30. Coding device comprising a device according to any one of claims 24 to 27.
31. A decoding device comprising a device according to any one of claims 24 to 27.
32. A signal generated by the method of any one of claims 1 or 3 to 11, or by the method of claim 28, or by the device of any one of claims 2 to 11, or by the device of claim 30.
33. A computer program comprising program code instructions for implementing the method according to any one of claims 1, 3 to 12, 14 to 23, 25 to 29.
34. A non-transitory information storage medium storing program code instructions for implementing the method according to any one of claims 1, 3 to 12, 14 to 23, 25 to 29.
Citation Information
Patent Citations
Methods and systems for cross-component sample adaptive offset
WO2022117010A1
Method and apparatus for video filtering
WO2022125151A1
Chroma coding enhancement in cross-component sample adaptive offset
WO2022164757A1
Cross-component sample adaptive offset
WO2023097064A1