GB2571312A - New sample sets and new down-sampling schemes for linear component sample prediction - Google Patents

New sample sets and new down-sampling schemes for linear component sample prediction Download PDF

Info

Publication number
GB2571312A
GB2571312A GB1802969.4A GB201802969A GB2571312A GB 2571312 A GB2571312 A GB 2571312A GB 201802969 A GB201802969 A GB 201802969A GB 2571312 A GB2571312 A GB 2571312A
Authority
GB
United Kingdom
Prior art keywords
component
reconstructed
value
sample
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB1802969.4A
Other versions
GB2571312B (en
GB201802969D0 (en
Inventor
Laroche Guillaume
Gisquet Christophe
Onno Patrice
Taquet Jonathan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to GB1802969.4A priority Critical patent/GB2571312B/en
Publication of GB201802969D0 publication Critical patent/GB201802969D0/en
Priority to TW108103477A priority patent/TW201937928A/en
Priority to PCT/EP2019/053244 priority patent/WO2019162116A1/en
Publication of GB2571312A publication Critical patent/GB2571312A/en
Application granted granted Critical
Publication of GB2571312B publication Critical patent/GB2571312B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

Cross component prediction of blocks of image data for video coding, in which a first-component (chroma) sample value in a first-component block is obtained from an associated reconstructed second-component (luma) sample value of a second-component block by dividing the range of second-component sample values into a set of bands; deriving a first-component table value for each band; and obtaining the first-component sample value based on the first-component table value for the band containing the associated reconstructed second-component sample value. The first component table value is derived based on reconstructed first and second component sample values neighbouring the respective first or second component blocks. Once reconstructed sample values are binned into the bands, non-empty bands may have a first-component table value being the first-component sample value corresponding to either the first of, or the average of, all second-component sample values in the band. Empty band may be set equal to the nearest non-empty band. Preferably, the first-component table values are set based on a plurality of linear models, each model passing through two fixed points. The fixed points may be minimum A, B and maximum C, D first (luma) and second (chroma) component reconstructed points.

Description

NEW SAMPLE SETS AND NEW DOWN-SAMPLING SCHEMES
FOR LINEAR COMPONENT SAMPLE PREDICTION
DOMAIN OF THE INVENTION
The present invention concerns the encoding or decoding of blocks of a given video component, in particular the intra prediction of such component blocks or obtaining the samples of such blocks. The invention finds applications in obtaining blocks of a component, typically blocks of a chroma component, of video data from samples from another component, typically luma samples.
BACKGROUND OF THE INVENTION
Predictive encoding of video data is based on the division of frames into blocks of pixels. For each block of pixels, a predictor block is searched for in available data. The predictor block may be a block in a reference frame different from the current one in INTER coding modes, or generated from neighbouring pixels in the current frame in INTRA coding modes. Different encoding modes are defined according to different ways of determining the predictor block. The result of the encoding is a signalling of the predictor block and a residual block consisting in the difference between the block to be encoded and the predictor block.
Regarding INTRA coding modes, various modes are usually proposed, such as a Direct Current (DC) mode, a planar mode and angular modes. Each of them seeks to predict samples of a block using previously decoded boundary samples from spatially neighbouring blocks.
The encoding may be performed for each component forming the pixels of the video data. Although RGB (for Red-Green-Blue) representation is wellknown, the YUV representation is preferably used for the encoding to reduce the inter-channel redundancy. According to these encoding modes, a block of pixels may be considered as composed of several, typically three, component blocks. An RGB pixel block is composed of an R component block containing the values of the R component of the pixels of the block, a G component block containing the values of the G component of these pixels, a B component block containing the values of the B component of these pixels. Similarly, a YUV pixel block is composed of a Y component block (luma), a U component block (chroma) and a V component block (also chroma). Another example is YCbCr, where Cb and Cr are also known as chroma components. However, intercomponent (also known as cross-component) correlation is still observed locally.
To improve compression efficiency, the usage of Cross-Component Prediction (CCP) has been studied in the state of this art. The main application of CCP concerns luma-to-chroma prediction. This means that the luma samples that have already been encoded are reconstructed from encoded data (as they would have been in the decoder) and then that a chroma sample is predicted from the reconstructed luma sample. However, variants use CCP for chroma-tochroma prediction or more generally for first-component to second-component prediction (including RGB).
The Cross-Component Prediction may apply directly to a block of chroma pixels or may apply to a residual chroma block (meaning the difference between a chroma block and a chroma block predictor).
The Linear Model (LM) mode uses a linear model to predict chroma from luma as a chroma intra prediction mode, relying on one or two parameters, for example slope (a) and offset (β), to be determined. The chroma intra predictor is thus derived from reconstructed luma samples of a current luma block using the linear model with the parameters. Here, by the current luma block, we mean a luma block that is corresponds to/collocated with a current block (for example, a current block of pixels or a current block of chroma sample values) that is being processed/predicted.
The linearity, i.e. parameters a and β, is derived from the reconstructed causal samples, in particular from a neighbouring, also called reconstructed, chroma sample set comprising reconstructed chroma samples neighbouring the current chroma block to predict and from a neighbouring, also called reconstructed, luma sample set comprising reconstructed luma samples neighbouring the current luma block.
Specifically, for an NxN chroma block, the N neighbours of the above row and the N neighbours of the left column are used to form the neighbouring chroma sample set for derivation.
The neighbouring luma sample set is also made of N neighbouring samples just above the corresponding luma block and N neighbouring samples on the left side of the luma block.
It is known to reduce the size of the video data to encode without significant degradation of visual rendering, by sub-sampling the chroma components. Known subsampling modes are labelled 4:1:1,4:2:2, 4:2:0.
In the situation where the video chroma data are subsampled, the luma block corresponding to the NxN chroma block is bigger than NxN. In that case, the neighbouring luma sample set is down-sampled to match the chroma resolution. The chroma intra predictor to predict the chroma samples in the current NxN chroma block has to be generated using the linear model with the one or more parameters a and β derived and the reconstructed luma samples of the current luma block that are down-sampled to match chroma resolution. The down-sampling of the reconstructed luma samples to chroma resolution makes it possible to retrieve the same number of samples as the chroma samples when forming both the luma sample set and the chroma intra predictor.
The chroma intra predictor is thus subtracted from the current chroma block to obtain a residual chroma block that is encoded at the encoder. Conversely, at the decoder, the chroma intra predictor is added to the received residual chroma block in order to retrieve the chroma block, also known as reconstruction of the decoded block. This may also involve clipping for results of the addition going out of the sample range.
Sometimes, the residual chroma block is negligible and thus not considered during encoding (i.e. not encoded in the bitstream). In that case, the above-mentioned chroma intra predictor is used as the chroma block itself. As a consequence, the above LM mode makes it possible to obtain a sample for a current block of a given component from an associated (i.e. collocated or corresponding) reconstructed sample of a block of another component in the same frame using a linear model with one or more parameters. The sample is obtained using the linear model with the derived one or more parameters and the associated reconstructed samples in the block of the other component. If needed, the block of the other component is made of samples down-sampled to match the block resolution of the current component being processed. While the block of the current component is typically a chroma block and the block of the other component a luma block, this may not always be the case. For the sake of clarity and simplicity, the examples given here focus on the prediction of a chroma block from a luma block, it should be clear that the described mechanism may also apply to any component prediction based on another component.
The Joint Exploration Model (JEM) of the Joint Video Exploration Team (JVET) adds six Cross-Component (luma-to-chroma) linear model modes to the conventional intra prediction modes already known. All these modes compete against each other to predict or generate the chroma blocks, the selection of the mode being usually made based on a rate-distortion criterion at the encoder end.
The six Cross-Component (luma-to-chroma) linear model modes differ from each other by different down-sampling schemes used to down-sample the reconstructed luma samples and/or by different sample sets of samples from which the parameters a and β are derived.
For instance, the sample sets may be made of the two lines (i.e. rows and columns) of samples neighbouring the current luma or chroma block, these lines being parallel and immediately adjacent to each one of the top and/or left boundaries of the current luma or chroma block at chroma resolution. Such exemplary sample set is described in publication US 9,736,487.
Other exemplary sample sets are also disclosed in publications US 9,288,500 and US 9,462,273.
The down-sampling schemes used in JEM include a 6-tap filter determining a down-sampled reconstructed luma sample from six reconstructed luma samples but also three 2-tap filters that select either the top right and bottom right samples from among the six reconstructed luma samples, or the bottom and bottom right samples, or the top and top right samples, and a 4-tap filter that selects the top, top right, bottom and bottom right samples of the six reconstructed luma samples.
SUMMARY OF THE INVENTION
The JEM is complex in term of processing. For instance, it requires a complex derivation of the linear model parameters for the computation of the chroma predictor block samples.
The present invention has been devised to address one or more of the foregoing concerns. It concerns an improved method for obtaining a chroma sample for a current chroma block, possibly through chroma intra prediction.
According to a first aspect of the present invention, there is provided a method of obtaining a first-component sample value from an associated reconstructed second-component sample value, the method comprising: assigning (e.g. mapping) one or more first-component sample values to corresponding one or more ranges of second-component sample values, the one or more ranges being divided from a wider range of values comprising reconstructed second-component sample values; and obtaining the firstcomponent sample value by taking, as the first-component sample value, an assigned (e.g. mapped) first-component same value of a range which comprises the associated reconstructed second-component sample value.
Suitably, the reconstructed second-component sample values neighbour a block of reconstructed second-component sample values which corresponds to/is collocated with a current block to be processed. Suitably, the current block to be processed is a block of first-component sample values. Alternatively, the current block to be processed is a block of pixels.
Suitably, the assigning of a first-component sample value to a range is stored or processed as a table associating (e.g. assigning or mapping) one or more ranges (bands or subranges of the wider range) with corresponding one or more first-component sample values (first-component table values).
Suitably, the assigned one or more first-component sample values are determined based on reconstructed first-component sample values which are associated with the reconstructed second-component sample values. Suitably, the associated reconstructed first-component sample values neighbour a block of reconstructed first-component sample values which correspond to/is collocated with a current block to be processed. Suitably, the current block to be processed is a block of reconstructed first-component sample values. Alternatively, the current block to be processed is a block of pixels.
Suitably, the assigned first-component sample value taken as the obtained first-component sample value is determined based on a weighted average of assigned first-component sample values associated with two neighbouring ranges. Suitably, a weight for the weighted average is based on a difference between the associated reconstructed second-component sample value and a midpoint of the neighbouring range.
Suitably, an assigned first-component sample value associated with a range, said range comprising at least one reconstructed second-component sample values, is determined based on an average of at least one reconstructed first-component sample values which are associated with the at least one reconstructed second-component sample values of the range.
Suitably, an assigned first-component sample value associated with a range, said range comprising at least one reconstructed second-component sample values, is a reconstructed first-component sample value associated with a first processed reconstructed second-component sample value of the range.
Suitably, an assigned first-component sample value associated with a range, said range comprising at least one reconstructed second-component sample values, is a reconstructed first-component sample value associated with a reconstructed second-component sample value which is nearest in value to a midpoint of the range.
Suitably, an assigned first-component sample value associated with a range, said range comprising at least one reconstructed second-component sample values, is a reconstructed first-component sample value associated with a reconstructed second-component sample value which is nearest in value to an average of the at least one reconstructed second-component sample values of the range.
Suitably, an assigned first-component sample value associated with a range, which does not comprise a reconstructed second-component sample value, is an average of assigned one or more first-component sample values associated with corresponding one or more ranges, each of the one or more ranges comprising at least one reconstructed second-component sample values.
Suitably, an assigned first-component sample value associated with a range, which does not comprise a reconstructed second-component sample value, is an assigned first-component sample value associated with a nearest other range comprising at least one reconstructed second-component sample values.
Suitably, an assigned first-component sample value associated with a range, which does not comprise a reconstructed second-component sample value, is a weighted average of assigned first-component sample values associated with nearest other ranges comprising at least one reconstructed second-component sample values.
Suitably, an assigned first-component sample value associated with a range, which does not comprise a reconstructed second-component sample value, is determined based on at least one linear model for obtaining a firstcomponent sample value, wherein the at least one linear model is obtained by: taking two sets from two or more sets, each set comprising a first-component sample value and a second-component sample value from reconstructed sample values of the first-component and the second-component; and deriving the at least one linear model based on a ratio of changes/differences in the firstcomponent sample values and the second-component sample values between the two sets so that the first-component sample values of the two sets are obtainable from the second-component sample values of the respective sets using the derived linear model.
It is understood that the first-component sample value and the associated second-component sample value are associated with each other through a preset relationship.
Suitably, the preset relationship is that they are collocated with, or correspond to, each other. This collocated, or correspondence, relationship may be defined for each sample value individually, or between a block/group of first-component sample values and a block/group of second-component sample values.
Suitably, the preset relationship is that they are associated with at least one pixel of a current block of pixels to be processed, for example they are collocated, or corresponding, sample values of the at least one pixel that is to be processed. This collocated, or correspondence, relationship may be defined for each sample value or each pixel individually, or between a block/group of sample values to a block/group of pixels.
It is also understood that a down-sampling or an up-sampling process may be applied to a block of first-component sample values or secondcomponent sample values so that the preset relationship between the blocks, or with the at least one pixel of a current block of pixels, can be established after the down-sampling/up-sampling.
Suitably, the first-component sample value and the associated secondcomponent sample value are associated with blocks of pixels of the same image, or frame, that is to be processed.
It is understood that here a set comprising a first-component sample value and a second-component sample value is a component sample value set of the first-component sample value and the second-component sample value. So the set is an n-tuple with the first-component sample value and the secondcomponent sample value as its elements. Suitably, the set is a 2-tuple. Alternatively, the set is an n-tuple which has more than two number of elements (n elements).
Suitably, when the set is an n-tuple with more than two number of elements, the derived linear model is for obtaining a first-component sample value based on more than one elements (i.e. more than one associated component sample values), wherein the linear model is obtained based on a ratio of changes/differences in the first-component sample values and the more than one associated component sample values between the two sets so that the first-component sample values of the two sets are obtainable from the more than one associated component sample values of the respective sets using the derived linear model .
Suitably, the reconstructed sample values of the first-component and the second-component neighbour a current block to be processed. Suitably, the reconstructed sample values of the first-component and the second-component are above or to the left of the current block.
Suitably, an assigned first-component sample value associated with a range, said range comprising at least one reconstructed second-component sample values, is also determined based on the derived linear model for obtaining a first-component sample value.
Suitably, the taken two sets are the sets comprising the smallest secondcomponent sample value and the largest second-component sample value among the second-component sample values in the two or more sets. Suitably, the taken two sets are the sets comprising the smallest first-component sample value and the largest first-component sample value among the first-component sample values in the two or more sets.
Suitably, the taking the two sets comprises: determining a first group of sets comprising the smallest second-component sample value and the largest second-component sample value among the second-component sample values in the two or more sets; determining a second group of sets comprising the smallest first-component sample value and the largest first-component sample value among the first-component sample values in the two or more sets; and selecting the two sets from the sets of the first group and the second group.
According to a second aspect of the present invention, there is provided a device for obtaining a first-component sample value from an associated reconstructed second-component sample value, the device configured to perform an obtaining method according to the first aspect of the invention.
According to a third aspect of the present invention, there is provided a method of encoding or decoding one or more images into a bitstream or from a bitstream, the method comprising obtaining a first-component sample value from an associated reconstructed second-component sample value according to the first aspect of the invention.
According to a fourth aspect of the present invention, there is provided a device for encoding or decoding one or more images into a bitstream or from a bitstream, the device configured to perform a method according to the third aspect of the invention.
According to a fifth aspect of the present invention, there is provided a method of obtaining a first-component sample value from an associated reconstructed second-component sample value, the method comprising selecting one linear model mode from a plurality of linear model modes for obtaining the first-component sample value, wherein a method of obtaining a first-component sample value from an associated reconstructed secondcomponent sample value according to the first aspect of the invention is used to obtain the first-component sample value when at least one of the plurality of linear model modes is selected.
Suitably, the plurality of linear model modes comprises a first mode using a single linear model and a second mode using more than one linear models, and the obtaining method according to the first aspect of the invention is used instead of at least one of the single and the more than one linear models. Suitably, only the first mode uses the obtaining method according to the first aspect of the invention. Alternatively, only the second mode uses the obtaining method according to the first aspect of the invention.
According to a sixth aspect of the present invention, there is provided a method of encoding one or more images into a bitstream, wherein the method comprises obtaining a first-component sample value from an associated reconstructed second-component sample value according to the fifth aspect of the present invention. Suitably, the method further comprises providing, in the bitstream, information indicative of use or disuse of the obtaining method according to the first aspect of the invention. Suitably, the information indicative of use or disuse is provided in relation to a linear model mode or a linear model.
According to a seventh aspect of the present invention, there is provided a method of decoding one or more images from a bitstream, wherein the method comprises obtaining a first-component sample value from an associated reconstructed second-component sample value according to the fifth aspect of the present invention. Suitably, the method further comprises: obtaining, from the bitstream, information indicative of use or disuse of the obtaining method according to the first aspect of the invention; and using or not using the obtaining method according to the first aspect of the invention based on the obtained information. Suitably, the information indicative of use or disuse is provided in relation to a linear model mode or a linear model.
According to an eighth aspect of the present invention, there is provided a computer program which upon execution causes a method according to the first, third, fifth, sixth, or seventh aspect to be performed and a (non-transitory) computer-readable medium storing instructions for implementing the method according to the first, third, fifth, sixth, or seventh aspect of the invention.
According to the present invention there is provided a device, a method, a computer program (product), and a (non-transitory) computer readable storage medium as set forth in the appended claims. Other features of the invention are defined in the appended claims, and the description which follows. Some of these features are explained here below with reference to a method, while they can be transposed into system features dedicated to a device or a system comprising at least one device.
At least parts of the methods according to the invention may be computer implemented. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as “a processor and a memory”, a circuit, a module or a system. Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium.
Since the present invention can be implemented in software, the present invention can be embodied as computer readable code for provision to a programmable apparatus on any suitable carrier medium. A tangible carrier medium may comprise a storage medium such as a hard disk drive, a magnetic tape device or a solid state memory device and the like. A transient carrier medium may include a signal such as an electrical signal, an electronic signal, an optical signal, an acoustic signal, a magnetic signal or an electromagnetic signal, e.g. a microwave or RF signal.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the invention will now be described, by way of example only, and with reference to the following drawings in which:
Figure 1 illustrates a video encoder logical architecture;
Figure 2 illustrates a video decoder logical architecture corresponding to the video encoder logical architecture illustrated in Figure 1;
Figure 3 schematically illustrates examples of a YUV sampling scheme for 4:2:0 sampling;
Figure 4 illustrates, using a flowchart, general steps for generating a block predictor using the LM mode, performed by either an encoder or a decoder;
Figure 5 schematically illustrates a chroma block and an associated or collocated luma block, with down-sampling of the luma samples, and neighbouring chroma and luma samples, as known in prior art;
Figure 6 schematically illustrates exemplary sample sets for LM parameter derivation as known in prior art;
Figure 7 illustrates some down-sampling filters known in prior art;
Figure 8 illustrates exemplary coding of signalling flags to signal LM modes;
Figure 9 illustrates plotting pairs of Luma and Chroma neighbouring samples;
Figure 10 illustrates the main steps of the band conversion table Chroma prediction according to an embodiment of the invention;
Figure 11 A, 11B, 11C and 11D illustrate some example of band conversion tables;
Figure 12 illustrates some plotting pairs of Luma and Chroma neighbouring samples and one embodiment of the invention to generate values to set the empty bands;
Figure 13 illustrates the main steps of a process to set the empty bands in an embodiment of the invention;
Figure 14 illustrates some plotting pairs of Luma and Chroma neighbouring samples and an example of value generation to set the empty bands;
Figure 15 illustrates the main steps of a process to set the empty bands in an embodiment of the invention;
Figure 16 illustrates some plotting pairs of Luma and Chroma neighbouring samples and an example of value generation to set the empty bands;
Figure 17 illustrates the relative position of a Luma neighbouring sample value in a band and the centre of this band and the neighbouring band with its centre in an embodiment of the invention;
Figure 18 illustrates the relative position of the centre for several bands on the band conversion table in an embodiment of the invention;
Figure 19 illustrates the main steps of a process of the band conversion table Chroma prediction in an embodiment of the invention; and
Figure 20 is a schematic block diagram of a computing device for implementation of one or more embodiments of the invention.
DETAILLED DESCRIPTION OF EMBODIMENTS
Figure 1 illustrates a video encoder architecture. In the video encoder, an original sequence 101 is divided into blocks of pixels 102 called coding blocks or coding units for HEVC. A coding mode is then affected to each block. There are two families of coding modes typically used video coding: the coding modes based on spatial prediction or “INTRA modes” 103 and the coding modes based on temporal prediction or “INTER modes” based on motion estimation 104 and motion compensation 105.
An INTRA coding block is generally predicted from the encoded pixels at its causal boundary by a process called INTRA prediction. The predictor for each pixel of the INTRA coding block thus forms a predictor block. Depending on which pixels are used to predict the INTRA coding block, various INTRA modes are proposed: for example, DC mode, a planar mode and angular modes.
While Figure 1 is directed to a general description of a video encoder architecture, it is to be noted that a pixel corresponds here to an element of an image, that typically consists of several components, for example a red component, a green component, and a blue component. An image sample is an element of an image, that comprises only one component.
Temporal prediction first consists in finding in a previous or future frame, called the reference frame 116, a reference area which is the closest to the coding block in a motion estimation step 104. This reference area constitutes the predictor block. Next this coding block is predicted using the predictor block to compute the residue or residual block in a motion compensation step 105.
In both cases, spatial and temporal prediction, a residue or residual block is computed by subtracting the obtained predictor block from the coding block.
In the INTRA prediction, a prediction mode is encoded.
In the temporal prediction, an index indicating the reference frame used and a motion vector indicating the reference area in the reference frame are encoded. However, in order to further reduce the bitrate cost related to motion vector encoding, a motion vector is not directly encoded. Indeed, assuming that motion is homogeneous, it is particularly advantageous to encode a motion vector as a difference between this motion vector, and a motion vector (or motion vector predictor) in its surroundings. In the H.264/AVC coding standard for instance, motion vectors are encoded with respect to a median vector computed from the motion vectors associated with three blocks located above and on the left of the current block. Only a difference, also called residual motion vector, computed between the median vector and the current block motion vector is encoded in the bitstream. This is processed in module “Mv prediction and coding” 117. The value of each encoded vector is stored in the motion vector field 118. The neighbouring motion vectors, used for the prediction, are extracted from the motion vector field 118.
The HEVC standard uses three different INTER modes: the Inter mode, the Merge mode and the Merge Skip mode, which mainly differ from each other by the signalling of the motion information (i.e. the motion vector and the associated reference frame through its so-called reference frame index) in the bit-stream 110. For the sake of simplicity, motion vector and motion information are conflated below. Regarding motion vector prediction, HEVC provides several candidates of motion vector predictor that are evaluated during a ratedistortion competition in order to find the best motion vector predictor or the best motion information for respectively the Inter or the Merge mode. An index corresponding to the best predictors or the best candidate of the motion information is inserted in the bitstream 110. Thanks to this signalling, the decoder can derive the same set of predictors or candidates and uses the best one according to the decoded index.
The design of the derivation of motion vector predictors and candidates contributes to achieving the best coding efficiency without large impact on complexity. Two motion vector derivations are proposed in HEVC: one for Inter mode (known as Advanced Motion Vector Prediction (AMVP)) and one for the Merge modes (known as Merge derivation process).
Next, the coding mode optimizing a rate-distortion criterion for the coding block currently considered is selected in module 106. In order to further reduce the redundancies within the obtained residue data, a transform, typically a DCT, is applied to the residual block in module 107, and a quantization is applied to the obtained coefficients in module 108. The quantized block of coefficients is then entropy coded in module 109 and the result is inserted into the bit-stream 110
The encoder then performs decoding of each of the encoded blocks of the frame for the future motion estimation in modules 111 to 116. These steps allow the encoder and the decoder to have the same reference frames 116. To reconstruct the coded frame, each of the quantized and transformed residual blocks is inverse quantized in module 111 and inverse transformed in module 112 in order to provide the corresponding “reconstructed” residual block in the pixel domain. Due to the loss of the quantization, this “reconstructed” residual block differs from original residual block obtained at step 106.
Next, according to the coding mode selected at 106 (INTER or INTRA), this “reconstructed” residual block is added to the INTER predictor block 114 or to the INTRA predictor block 113, to obtain a “pre-reconstructed” block (coding block).
Next, the “pre-reconstructed” blocks are filtered in module 115 by one or several kinds of post filtering to obtain “reconstructed” blocks (coding blocks). The same post filters are integrated at the encoder (in the decoding loop) and at the decoder to be used in the same way in order to obtain exactly the same reference frames at encoder and decoder ends. The aim of this post filtering is to remove compression artefacts.
Figure 2 illustrates a video decoder architecture corresponding to the video encoder architecture illustrated in Figure 1.
The video stream 201 is first entropy decoded in a module 202. Each obtained residual block (coding block) is then inverse quantized in a module 203 and inverse transformed in a module 204 to obtain a “reconstructed” residual block. This is similar to the beginning of the decoding loop at the encoder end.
Next, according to the decoding mode indicated in the bitstream 201 (either INTRA type decoding or an INTER type decoding), a predictor block is built.
In case of INTRA mode, an INTRA predictor block is determined 205 based on the INTRA prediction mode specified in the bit-stream 201.
In case of INTER mode, the motion information is extracted from the bitstream during the entropy decoding 202. The motion information is composed, for example in HEVC and JVET, of a reference frame index and a motion vector residual.
A motion vector predictor is obtained in the same way as done by the encoder (from neighbouring blocks) using already computed motion vectors stored in motion vector field data 211. It is thus added 210 to the extracted motion vector residual block to obtain the motion vector. This motion vector is added to the motion vector field data 211 in order to be used for the prediction of the next decoded motion vectors.
The motion vector is also used to locate the reference area in the reference frame 206 which is the INTER predictor block.
Next, the “reconstructed” residual block obtained at 204 is added to the INTER predictor block 206 or to the INTRA predictor block 205, to obtain a “prereconstructed” block (coding block) in the same way as the decoding loop of the encoder.
Next, this “pre-reconstructed” block is post filtered in module 207 as done at the encoder end (signalling of the post filtering to use may be retrieved from bitstream 201).
A “reconstructed” block (coding block) is thus obtained which forms the de-compressed video 209 as the output of the decoder.
The above-described encoding/decoding process may be applied to monochrome frames. However, most common frames are colour frames generally made of three arrays of colour samples, each array corresponding to a “colour component”, for instance R (red), G (green) and B (blue). A pixel of the image comprises three collocated/corresponding samples, one for each component.
R, G, B components have usually high correlation between them. It is thus very common in image and video compression to decorrelate the colour components prior to processing the frames, by converting them in another colour space. The most common format is the YUV (YCbCr) where Y is the luma (or luminance) component, and U (Cb) and V (Or) are chroma (or chrominance) components.
To reduce the amount of data to process, some colour components of the colour frames may be subsampled, resulting in having different sampling ratios for the three colour components. A subsampling scheme is commonly expressed as a three part ratio J:a:b that describes the number of luma and chroma samples in a conceptual 2-pixel-high region. ‘J’ defines the horizontal sampling reference of the conceptual region (i.e. a width in pixels), usually 4. ‘a’ defines the number of chroma samples (Cr, Cb) in the first row of J pixels, while ‘b’ defines the number of (additional) chroma samples (Cr, Cb) in the second row of J pixels.
With the subsampling schemes, the number of chroma samples is reduced compared to the number of luma samples.
The 4:4:4 YUV or RGB format does not provide subsampling and corresponds to a non-subsampled frame where the luma and chroma frames have the same size Wx H.
The 4:0:0 YUV or RGB format has only one colour component and thus corresponds to a monochrome frame.
Exemplary sampling formats are the following.
The 4:2:0 YUV format has half as many chroma samples as luma samples in the first row, and no chroma samples in the second row. The two chroma frames are thus W/2-pixel wide and H/2-pixel height, where the luma frame is Wx H.
The 4:2:2 YUV format has half as many chroma samples in the first row and half as many chroma samples in the second raw, as luma samples. The two chroma frames are thus W/2-pixel wide and H-pixel height, where the luma frame is Wx H.
The 4:1:1 YUV format has 75% fewer chroma samples in the first row and 75% fewer chroma samples in the second row, than the luma samples. The two chroma frames are thus W/4-pixel wide and H-pixel height, where the luma frame is Wx H.
When subsampled, the positions of the chroma samples in the frames are shifted compared to the luma sample positions.
Figure 3 illustrates an exemplary positioning of chroma samples (triangles) with respect to luma samples (circles) for a 4:2:0 YUV frame.
The encoding process of Figure 1 may be applied to each colourcomponent frame of an input frame.
Due to correlations between the colour components (between RGB or remaining correlations between YUV despite the RGB-to-YUV conversion), Cross-Component Prediction (CCP) methods have been developed to exploit these (remaining) correlations in order to improve coding efficiency. The CCP methods are intra prediction because they rely only on the components of the same frame.
CCP methods can be applied at different stages of the encoding or the decoding process, in particular either at a first prediction stage (to predict a current colour component) or at a second prediction stage (to predict a current residual block of a component).
One known CCP method is the LM mode, also referred as to CCLM (Cross-Component Linear Model prediction). It is used to predict both chroma components Cb and Cr (or U and V) from the luma Y, more specifically from the reconstructed luma (at the encoder end or at the decoder end). One predictor is generated for each component. The method operates at a (chroma and luma) block level, for instance at CTU (coding tree unit), CU (coding unit) level, PU (prediction unit) level, sub-PU orTU (transform unit) level.
Figure 4 illustrates as an example, using a flowchart, general steps for generating a block predictor using the LM mode, performed either by the encoder (used as reference below) or the decoder.
In the description below, an exemplary first component is chroma while an exemplary second component is luma.
Considering a current chroma block 502 (Figure 5A) to encode or decode and its associated or corresponding (i.e. “collocated”) luma block 505 (i.e. of the same CU for instance) in the same frame, the encoder (or the decoder) receives, in step 401, a neighbouring luma sample set RecL comprising luma samples 503 neighbouring the current luma block, and receives a neighbouring chroma sample set RecC comprising chroma samples 501 neighbouring the current chroma block, denoted 402. It is to be noted that for some chroma sampling formats and chroma phase, the luma samples 504 and 503 are not directly adjacent to luma block 505 as depicted in Figure 5A. For example in Figure 5A, to obtain the left row RecL’ (503), only the second left row is needed and not the direct left row. In the same way, for the up line 504 the second up line is also considered for the down-sampling of luma sample as depicted in Figure 5A.
When a chroma sampling format is used (e.g. 4:2:0, 4:2:2, etc.), the neighbouring luma sample set is down-sampled at step 403 into RecL’ 404 to match chroma resolution (i.e. the sample resolution of the corresponding chroma frame/block). RecL’ thus comprises reconstructed luma samples 504 neighbouring the current luma block that are down-sampled. Thanks to the down-sampling, RecL’ and RecC comprise the same number 2N of samples (chroma block 502 being N x N). Yet, particular down-samplings of the luma border exist in the prior art where less samples are needed to obtain RecL’. In addition, even if RecL and RecC have the same resolution, RecL’ can be seen as the denoised version of RecL, through the use of a low-pass convolution filter.
In the example of Figure 5A, the neighbouring luma and chroma sample sets are made of the down-sampled top and left neighbouring luma samples and of the top and left neighbouring chroma samples, respectively. More precisely each of the two sample sets is made of the first line immediately adjacent to the left boundary and the first line immediately adjacent to the top boundary of their respective luma or chroma block. Due to down-sampling (4:2:0 in Figure 5A), the single line of neighbouring luma samples RecL’ is obtained from two lines of non down-sampled reconstructed luma samples RecL (left or up).
US 9,565,428 suggests using sub-sampling which selects a single sample, only for the up line (i.e. adjacent to the top boundary of the luma block) and not for the luma block itself (as described below with reference to step 408). The proposed sub-sampling is illustrated in Figure 6A. The motivation for this approach is to reduce the line buffer of the up line.
The linear model which is defined by one or two parameters (a slope a and an offset β) is derived from RecL’ (if any, otherwise RecL) and RecC. This is step 405 to obtain the parameters 406.
The LM parameters a and β are obtained using a least mean squarebased method using the following equations:
_ Μ. Σι/RecCt. RecL'i - Σ i RecCt. Σι/Reclf _ a~ Μ.Σ/^ecLf - ^=iRecL\y ~ T2 n Σ/ί i RecCi — a. Σι/ Reclf β ~ M where M is a value which depends on the size of the block considered. In general cases of square blocks as shown in the Figures 5A and 5B, M=2N. However, the LM-based CCP may apply to any block shape where M is for instance the sum of the block height H plus the block width W (for a rectangular block shape).
It is to be noted that the value of M used as a weight in this equation may be adjusted to avoid computational overflows at the encoder and decoder. To be precise, when using arithmetic with 32-bit or 64-bit signed architectures, some of the computations may sometimes overflow and thus cause unspecified behaviour (which is strictly prohibited in any cross platform standard). To face this situation, the maximum magnitude possible given inputs RecL’ and RecC values may be evaluated, and M (and in turn the sums above) may be scaled accordingly to ensure that no overflow occurs.
The derivation of the parameters is usually made from the sample sets RecL’ and RecC shown in Figure 5A.
Variations of the sample sets have been proposed.
For instance, US 9,288,500 proposes three competing sample sets, including a first sample set made of the outer line adjacent to the top boundary and the outer line adjacent to the left boundary, a second sample set made of only the outer line adjacent to the top boundary and a third sample set made of only the outer line adjacent to the left boundary. These three sample sets are shown in Figure 6B for the chroma block only (and thus can be transposed to the luma block).
US 9,462,273 extends the second and third sample sets to additional samples extending the outer lines (usually doubling their length). The extended sample sets are shown in Figure 6C for the chroma block only. This document also provides a reduction in the number of LM modes available in order to decrease the signalling costs for signalling the LM mode used in the bitstream. The reduction may be contextual, for instance based on the Intra mode selected for the associated luma block.
US 9,736,487 proposes three competing sample sets similar to those of US 9,288,500 but made, each time, of the two lines of outer neighbouring samples parallel and immediately adjacent to the boundaries considered. These sample sets are shown in Figure 6D for the chroma block only.
Also US 9,153,040 and the documents of the same patent family propose additional sample sets made of a single line per boundary, with less samples per line than the previous sets.
Back to the process of Figure 4, using the linear model with the one or more derived parameters 406, a chroma intra predictor 413 for chroma block 502 may thus be obtained from the reconstructed luma samples 407 of the current luma block represented in 505. Again if a chroma sampling format is used (e.g. 4:2:0, 4:2:2, etc.), the reconstructed luma samples are downsampled at step 408 into L’ 409 to match chroma resolution (i.e. the sample resolution of the corresponding chroma frame/block).
The same down-sampling as for step 403 may be used, or another one for a line buffer reason. For instance, a 6-tap filter may be used to provide the down-sampled value as a weighted sum of the top left, top, top right, bottom left, bottom and bottom right samples surrounding the down-sampling position. When some surrounding samples are missing, a mere 2-tap filter is used instead of the 6-tap filter.
Applied to reconstructed luma samples L, output L’ of an exemplary 6-tap filter is obtained as follows:
z [ri j] = (2 x + 2 x L[2i,2j +1] + Z[2z - l,2j] + Z[2z + l,2j] + L[2i -1,2 j +1] + L[2i +1,2 j +1] + 4)» 3 with (i,j) being the coordinates of the sample within the down-sampled block and » being the bit-right-shifting operation.
Also an adaptive luma down-sampling may be used as described in US 2017/0244975. Only the content of the luma block is used to determine which down-sampling filter is used for each reconstructed luma sample of the luma block. A 1-tap filter is available. The motivation of this approach is to avoid propagation of an edge in the down-sampled luma block.
Thanks to down-sampling step 408, L’ and C blocks (the set of chroma samples in chroma block 502) comprise the same number N2 of samples (chroma block 502 being N χ N).
Next, each sample of the chroma intra predictor PredC 413 is calculated using the loop 410-411-412 following the formula
PredC[i,j] = a.L'[i,j] + β with (i,j) being the coordinates of all samples within the chroma and luma blocks.
To avoid divisions and multiplications, the computations may be implemented using less complex methods based on look-up tables and shift operations. For instance, the actual chroma intra predictor derivation 411 may be done as follows:
PredC[i,j] = (A.L'[i,j]) » S + β where S is an integer and A is derived from A1 and A2 (introduced above when computing a and β) using the look-up table mentioned previously. It actually corresponds to a rescaled value of a. The operation (x » S) corresponds to the bit-right-shifting operation, equivalent to an integer division of x (with truncation) by 2s.
When all samples of the down-sampled luma block have been parsed (412), the chroma intra predictor 413 is available for subtraction from chroma block 502 (to obtain a chroma residual block) at the encoder end or for addition to a chroma residual block (to obtain a reconstructed chroma block) at the decoder end.
Note that the chroma residual block may be insignificant and thus discarded, in which case the obtained chroma intra predictor 413 directly corresponds to predicted chroma samples (forming chroma block 502).
Both standardization groups ITU-T VCEG (Q6/16) and ISO/IEC MPEG (JTC 1/SC 29/WG 11) which have defined the HEVC standard are studying future video coding technologies for the successor of HEVC in a joint collaboration effort known as the Joint Video Exploration Team (JVET). The Joint Exploration Model (JEM) contains HEVC tools and new added tools selected by this JVET group. In particular, this reference software contains some CCP tools, as described in document JVET-G1001.
In the JEM, a total of 11 intra modes are allowed for chroma coding. Those modes include five traditional intra modes and six cross-component LM modes to predict Cb from Y (signalled in bitstream 110, 201) and one crosscomponent LM mode to predict Cr from Cb.
One of the six Y-to-Cb CC LM modes is the CCLM described above, in which the neighbouring luma and chroma sample sets RecL’ and RecC are each made of the first line immediately adjacent to the left boundary and the first line immediately adjacent to the top boundary of their respective luma or chroma block as shown in Figure 5A.
The five other Y-to-Cb CC LM modes are based on a particular derivation known as the Multiple Model (MM). These modes are labelled MMLM.
Compared to CCLM, the MMLM modes use two linear models. The neighbouring reconstructed luma samples from the RecL’ set and the neighbouring chroma samples from the RecC set are classified into two groups, each group being used to derive the parameters a and β of one linear model, thus resulting in two sets of linear model parameters (αι,βι) and (α2,β2).
For instance, a threshold may be calculated as the average value of the neighbouring reconstructed luma samples forming RecL’. Next, a neighbouring luma sample with Recl_’[i,j] < threshold is classified into group 1; while a neighbouring luma sample with RecL’[i,j] > threshold is classified into group 2.
Next, the chroma intra predictor (or the predicted chroma samples for current chroma block 602) is obtained according to the following formulas:
PredC[i,j] = a^L'lfj] + β±, if L'[i,j] < threshold
PredC[i,j] = a2.L'[i,j] + β2, if L'[i,j] > threshold
In addition, compared to CCLM, the MMLM modes use neighbouring luma and chroma sample sets RecL’ and RecC, each made of the two lines of outer neighbouring samples parallel and immediately adjacent to the left and top boundaries of the block considered. An example is shown in Figure 5B illustrating a 4:2:0 sampling format for which the two lines of neighbouring luma samples are obtained (using down-sampling) from four lines of non downsampled reconstructed luma samples.
The five MMLM modes differ from each other by five different downsampling filters to down-sample the reconstructed luma samples to match chroma resolution (to obtain RecL’ and/or L’).
A first MMLM mode relies on the same 6-tap filter as used in CCLM (see the 6 black points in reference 701 of Figure 7). The second to fourth MMLM modes rely on 2-tap filters which respectively provide the down-sampled value as a weighted sum of:
- the top right and bottom right samples of the six samples (used by the 6-tap filter) surrounding the down-sampling position (see filter 1, 702 of Figure 7):
L[i,j] — (L[2,i + 1,2/] + L[2i -I-1,2/ -I-1] -I-1) » 1 (the same applies with RecL),
- the bottom and bottom right samples of the six samples (used by the 6-tap filter) surrounding the down-sampling position (see filter 2, 703 of Figure 7):
L'[i,j] = (I[2i,2j + 1] + L[2i + l,2j + 1] + 1) » 1, and
- the top and top right samples of the six samples (used by the 6-tap filter) surrounding the down-sampling position (see filter 4, 705 of Figure 7):
L'[i,j] = (I[2i,2j] + L[2i + l,2j] + 1) » 1.
The fifth MMLM mode relies on 4-tap filter which provides the downsampled value as the weighted sum of the top, top right, bottom and bottom right samples of the six samples (used by the 6-tap filter) surrounding the downsampling position (see filter 3, 704 of Figure 7):
L'[i,j] = (M2i, 2j] +L[2i, 2j + 1] + L[2i + l,2j] + L[2i + l,2j + 1] + 2) »
2.
As indicated above, the CCLM or MMLM mode has to be signalled in the bitstream 110 or 201. Figure 8 illustrates an exemplary LM mode signalling of JEM. A first binary flag indicates whether the current block is predicted using an LM mode or other intra modes, including so-called DM modes. In case of LM mode, the six possible LM modes need to be signalled. The first MMLM mode (using the 6-tap filter) is signalled with one second binary flag set to 1. This second binary flag is set to 0 for the remaining modes, in which case a third binary flag is set to 1 to signal the CCLM mode and is set to 0 for the remaining MMLM modes. Two additional binary flags are then used to signal one of the four remaining MMLM modes.
One mode is signalled for each chroma component.
The Cb-to-Cr CCLM mode introduced above is used in DM modes, and applies at residual level. Indeed, a DM mode uses for chroma the intra mode which was used by luma in a predetermined location. Traditionally, a coding mode like HEVC uses one single DM mode, co-located with the top-left corner of the CU. Without going in too many details, and for the sake of clarity, JVET provides several such locations. This mode is then used to determine the prediction method, therefore creating a usual intra prediction for a chroma component which, when subtracted from the reference/original data, yield aforementioned residual data. The prediction for the Cr residual is obtained from the Cb residual (ResidualCb below) by the following formula:
PredCr[i,j] = a.ResidualCb[i,j] where a is derived in a similar way as in the CCLM luma-to-chroma prediction. The only difference is the addition of a regression cost relative to a default a value in the error function so that the derived scaling factor is biased towards a default value of -0.5 as follows:
_ Μ. ΣAi RecCbi. RecCrt - Σ ± RecCbi. ΣΑι RecL'i + λ (“θ·5) M.’ZAiReckki ~ (Σίία. ^ecCfy)2 +λ where RecCbi represents the values of neighbouring reconstructed Cb samples, RecCrt represents the neighbouring reconstructed Cr samples, and
A = ^AiRecCbi »9·
The known LM modes exhibit a large computation complexity, in particular when deriving the linear model parameter using least square based methods.
The present invention seeks to improve the situation in term of coding efficiency and/or computational complexity.
The invention is based on the replacement of the derivation of the linear model and its use to compute the chroma predictor block samples by a band conversion table. The band conversion table is generated based on pairs of samples, luma and chroma, taken in the neighbourhood of the current block. Then the chroma predictor block samples are obtained from the band conversion table for a given luma block sample. It is worth noting that the band conversion table is contemplated as a logical data model associating bands of luma values to a chroma value to be assigned to chroma samples. This logical data model may be implemented in different ways, using a data array structure, a linked list of data or any suitable data structure.
Figure 9 illustrates the main aspect in using a band conversion table to replace the derivation of the linear model parameters. Each point on the diagram represents a pair comprising a luma sample and its associated Chroma sample. The full range of the luma sample values and chroma sample values is 1024 in this example, but the method may be used for any full range of the sample values. The idea is to divide the full range or the range of the sample values into bands comprising a limited number of elements (each element corresponding to a band, i.e. a subrange or a subset of the full range). In the example, the bitdepth for each component is 10 bits so the full range for both luma and chroma values is 0 to 1024 (with the right point, i.e. 1024, excluded). The band table contains 16 elements, and the complete (full) range of the luma sample values is mapped evenly on the band table. So, in this example, luma sample values 0-63 are mapped onto the first band, luma sample values 64-127 are mapped onto the second band and so on. An index, from 0 to 15, for the band table is determined. For example, an easy and efficient way to determine the index of the band table element for a given luma sample value is to right shift the sample value by 6.
The band conversion table is filled with chroma table values. One chroma table value for a band of the luma sample values range. This means that all the luma sample values mapped to a band conversion table element are associated to a single chroma table value stored in the corresponding band conversion table element.
The band conversion table is used to build the chroma block predictor from a corresponding luma block. Each chroma block predictor sample is determined as the chroma table value found in the band conversion table element corresponding to the collocated luma sample value, after downsampling the luma block if needed.
The pairs of luma samples and associated chroma samples used to build the band conversion table are typically the ones used in the prior art to derive the linear model parameters. These pairs are illustrated by point in the diagram of Figure 9. As can be noted on the diagram, some band conversion table elements do not have any luma-chroma pair mapped to the element. Some have several luma-chroma pairs mapped to the element and some do have exactly one luma-chroma pair mapped to the element. A chroma table value needs to be determined for each band conversion table element. Several methods for determining these chroma table values are described below, constituting corresponding embodiments of the invention.
Figure 10 illustrates a flow chart of a method for chroma block prediction using a band table conversion according to an embodiment of the invention.
Steps 1001, 1002, 1003 and 1004 are similar to steps 401, 402, 403 and 404 of Figure 4. These steps aim at determining from the neighbourhood of the current block pairs of luma samples and their associated chroma samples used as a knowledge base for the chroma block prediction. These steps take as input the luma samples in the neighbouring RecL 1001 and the chroma samples in the neighbouring RecC 1002. Optional step 1003 is used to produce RecL’, a downsampled version of RecL, when RecL and RecC do not have the same resolution. As a result, RecL’ and RecC do have the same resolution.
The range of the luma sample values is a power of two depending on the number of bits (bitdepth) used to encode the luma sample values. In the example, the range of the luma sample values is 1024 corresponding to luma sample values encoded using 10 bits. Advantageously, while not mandatory, the size of the band conversion table is also taken as a power of two. The size of the band conversion table gives the number of bands in the luma values space. In the example, the number of bands, and therefore the size of the band conversion table, is 16. Doing so makes it possible to have a simple and efficient mapping function using a simple shift of the luma sample value to determine the index in the band conversion table where the sample is mapped. The value of the shift is given by:
Shift = bitdepth — log2(nb_bands) where bitdepth is the number of bits used to encode the luma sample values and nb_bands the size of the band conversion table. log2(n) is the binary logarithm, which corresponds to the number of bits needed to encode the index of band conversion table.
A luma sample with a value equal to luma is mapped to the band conversion table having the index index determined by:
index = luma » Shift.
The chroma sample values are accumulated by addition in the band conversion table. For each pair constituted by a luma sample and an associated chroma sample, the value of the chroma sample is added to the band conversion table element determined by the luma sample value. An additional table of counters maintain the number of pairs of samples accumulated in each band conversion table element. Both the band conversion table and the counter table are set with null initial values at the beginning of the method. This is done by steps 1005, 1006 and 1007. In step 1005 a pair of luma and chroma samples (RecL’[k], RecC[k]) is obtained. In step 1006, the mapping on one of the band of the table is made by determining the index corresponding to the luma sample value. In step 1007, the corresponding band conversion table element is updated by incrementing by the chroma sample value. The corresponding counter is incremented. This process is repeated to take into account all the pair of samples.
At the end of this process all the band conversion table element are filled with the sum of all the chroma sample values of the pairs of samples mapped to this element. Some band conversion table element may have a null value, meaning that the band is empty, as none of the pair of samples has been mapped to this element.
In step 1008, all non-empty band are averaged by dividing the sum of the chroma sample values by the number of values stored in the corresponding counter. At the end of these step, all non-empty band, namely all non-null band conversion table element, are set with a chroma value representative of the chroma sample values of the pair of samples used to fill the table. This chroma value is used as a chroma table value.
In step 1009, a chroma table value is determined for the empty bands. This may be done, for example, by linear interpolation based on the non-null values in the table according to different embodiments that will be described in detail later. Yet, for a very fast implementation the empty bands can be set by a same default value. This value can be the midpoint value of the full range (128 for 8 bits, 512 for 10 bits). In step 1010, the determination of the entire band conversion table is completed. Each band conversion table element contains a chroma table value associated with each band of luma values.
A current luma block L is used to determine a corresponding chroma predictor block PredC. In step 1011, the current luma block L is obtained. If needed, in step 1012, the luma block is downsampled to fit the size of the chroma predictor block PredC to be determined. The result is the downsampled luma block L’ 1013.
In step 1014, all samples of the luma block L’ are considered sequentially. In step 1015, the luma block sample is mapped to one ofthe band ofthe band conversion table by determining the corresponding index. The index i ,j are the coordinates inside the block L’. The mapping function is the one already described that shift the luma sample value by a Shift value determined according to the range of the luma values and the number of bands in the table. In step 1016, the corresponding sample of the chroma predictor block, meaning the collocated sample, is set to the chroma table value found in the band conversion table element corresponding to the mapping of the luma sample. This is repeated, in step 1017, for all the samples ofthe luma block to obtain the complete chroma predictor block 1018.
Compared to the LM modes of the prior art using linear model parameter derivation by least square based method, the proposed method makes it possible to determine the chroma predictor block with a reduced complexity of computation. When this band conversion table based method is used in competition with the known LM modes, it provides a coding efficiency improvement. In this case, this new “band LM” mode is used in addition to the known prior art LM modes. The new mode is signalled in the bitstream, for example using a dedicated flag. Alternatively, this new “band LM” modes may be used in replacement of the known LM modes and all other Cross-component prediction method.
Step 1009 of Figure 10 that is used to determine the chroma table value of the empty bands has an impact on the coding efficiency. Figure 11 illustrates some examples of band conversion tables and different ways to fill the empty elements. In these examples, the size of the band conversion table is kept low for the sake of simplicity of the example. It is set to eight while the bitdepth of the luma samples values is ten.
Figure 11A illustrates a band conversion table example as obtained before step 1009, meaning before filling the empty elements. Only the first, the third and the eighth element are filled with chroma table values 564, 555 and 487. All other bands are empty.
Figure 11B illustrates a first embodiment where all the empty band conversion table elements are filled up with a value corresponding to the average value of the non-null elements. In this example, the empty elements are filled up with the value 535 corresponding to the average of 564, 555 and 487 indicated in grey on the Figure. This embodiment is very simple, as a single value has to be determined for all the empty bands.
Figure 11C illustrates a second embodiment where the empty bands are filled up with the chroma table value of the nearest non-empty band. This embodiment is also very simple as no computation are needed to determine the chroma table values of the empty bands.
Figure 11D illustrates a third embodiment where the empty bands are filled up with a weighted average of the chroma table values of the two closest non-empty bands. For example, the determination of the chroma table value of the table element i, which is located between a first non-empty band of index k having the value 555 and a second non-empty band of index n having the value 487 may be determined according to:
Tab[i] = [Tab[k]. (n — i) + Tab[n], (i — k/)/(n — k)
When one of the neighbour is missing, meaning that there are no nonempty band at the right or at the left of the table element to be determined, then the value is set to the value of the closest non-empty neighbour. This third embodiment is lightly more complex than the previous one but leads to a better accuracy.
In another embodiment, the empty bands chroma table value is set to the midpoint of the range. For example, if the range is 1024 for a coding of the chroma values on ten bits. The empty bands chroma table value is set to 511.
In another embodiment, the empty elements of the band conversion table are determined using a linear model as the one used in the known LM modes previously described. By using a simple linear model, the complexity of the band conversion table method is still interesting compared to the full LM mode of the prior art.
Figure 12 illustrates the band conversion table according to the forth embodiment of the invention. Figure 13 illustrates a flow chart of the method to determine the chroma table values for the empty bands of the band conversion table according to the forth embodiment of the invention. The two figures are described together.
The general idea is to determine the two pairs of samples, having the lowest and the highest value of the luma sample. These two pairs compose the two points A and B on Figure 12. As any two points in a graph, the two pairs A and B determine a straight line. The straight line is mathematically defined by the two parameters a and β of a linear model. The empty bands are then filled up with chroma table values obtained from the straight line.
In step 1301, the minimum of the luma samples values minluma and the maximum of the luma samples values maxluma are determined. This step may be integrated in step 1005 of Figure 10 where all the pairs of samples are parsed.
In step 1302, the two points A, corresponding to (xA,yA), and B, corresponding to (xB,yB) are determined where xA and xB correspond to the minimum luma value minluma, respectively maximum luma value maxluma, and yA and yB are respectively the chroma table value of the corresponding bands. Namely, xA = minluma; yA = Tab[xA » Shift]; and xB = maxluma; yB = Tab [xB » Shift];
In step 1303, the parameters a and β of the linear model defining the straight line passing by A and B are determined. These parameters may be obtained with the formula:
Vb-Va a =----xb~xa β =yA- axA
It should be noted that these formula are simpler than the derivation computation of the linear model parameters in the known LM modes. The computation of these parameters can be done without floating point multiplications with integer multiplications and shift operations.
In step 1304, all the bands of the band conversion table are parsed to determine the chroma table value associated with the band, at least for the empty bands.
In step 1305, it is tested if the band is empty. If the band is non-empty, the band conversion table already contains a chroma table value, the band is passed in step 1307.
In step 1306, if the band is empty, the chroma table value for the band of index / is computed from the linear model, this may be done by applying the formula:
Tab[i] = a. ((i « Shift) + (1 « (Shift — 1))) + β
It should be noted that the value of (i « Shift) + (1 « (Shift - 1)) corresponds to the luma value at the centre of the band having the index /.
When all the bands have been processed, the complete band conversion table 1308 has been obtained.
In an alternative embodiment, the values minluma and maxluma may be replaced by the index of the corresponding bands. In that case, the luma values xA and xB may be determined as the centre of the band with the formula (i « Shift) + (1 « (Shift — 1)).
In yet another alternative embodiment, instead of determining only the chroma table value of the empty bands based on the linear model, once the parameters of the linear model have been determined, the chroma table value of all the bands are determined using the linear model. It means that the chroma table value obtained by averaging the chroma values of the samples are replaced by the chroma table value determined at step 1306.
In yet another embodiment, more than two points are defined. These points define several segments of straight lines, each segment being defined by its own linear model. The line composed of these segments is used to build the band conversion table. By allowing the line used to model the prediction to be composed of several different segments, the model is closer to reality and therefore allows an enhancement of the coding efficiency. An example of this embodiment is described in relation with Figure 14 illustrating the band conversion table and the corresponding line segments and Figure 15 illustrating the corresponding process used to build the table. These two figures will now be described in combination.
In this example, in addition to points A and B defined in the previous embodiment, two new points C and D are defined. C and D are defined based on the pairs of samples having the minimum and maximum chroma values, namely minchroma and maxchroma. It should be noted that the minimum and maximum chroma values may be determined from the pairs of samples used to determine the table or directly from the table when the non-empty elements have been determined and before the determination of the empty bands.
In step 1501 and 1510, theminluma, maxluma, minchroma and maxchroma are obtained. The indexes in the table associated with the values minchroma and maxchroma, are also obtained.
In step 1502, the corresponding points A, B, C and D, along with their coordinates xA,yA,xB>yB>xc>yc>xD>yD· These points respects the condition that xA < xc < xd xb- Points C and D may be exchanged to respect this condition in the ordering step 1511. It should be noted that points A and C may be identical, and similarly points D and B may also be identical. In the example of Figure 14, points B and D are identical.
In step 1503, the linear models of each segment are determined, namely the parameters (α^ββ) for segment (A, C), (a2>/?2) for segment (C, D), (a3,/?3) for segment (D, B). The parameters may be determined according to the following formula:
yc -yA a, =------XC~XA βι=γΑ- ar.xA
Vd - yc <7 2 = --------XD ~XC βι =yc-^2-xc
Vb-Vd a3 =-----XB~XD β3 =Vd -U3-xD
Then, once the linear models are determined, the band conversion table elements corresponding to empty bands may be determined similarly to the previous embodiment. Each element being determined using the corresponding linear model of the segment of line. Steps 1504 to 1507 and 1512 to 1514 triplicate the corresponding steps 1304 to 1307 of Figure 13 to determine the complete band conversion table 1508.
As, in the particular example, points D and B are identical, only two linear models are used. When also points A and C happen to be identical, we fall back to the previous embodiment with only one linear model.
In a particular embodiment, the embodiment based on one linear model and the one based on three linear models may be used as two different band LM modes used in competition. These two band LM modes may be used alone or in competition with known LM modes. Each band LM mode is then signalled in the bitstream.
In yet another embodiment, all bands, namely empty bands and nonempty bands, have their chroma table value determined according to these three linear models. This means that all tests “if Count[i]==0” are removed in steps 1505, 1512 and 1514.
In yet another embodiment, each segment of empty bands in the band conversion table is associated with its own linear model. This embodiment is illustrated by Figure 16. All empty bands before the first non-empty band or after the last non-empty band are determined according to the closest linear model. This corresponds to extend the closest straight line segment. By increasing the number of linear models, the precision of the chroma prediction is also increased likewise the coding efficiency.
This last embodiment may be used as an additional band LM mode used in competition with the previous defined band LM modes. It is then signalled in the bitstream accordingly.
When using a band conversion table as previously described, all the luma values mapped to a given band are associated to the same chroma table value. In particular, when the number of bands is low, it means that close values of luma generate the same chroma table values and the chroma predictor block is filled with flat areas of identical chroma table values. This may lead to a loss of precision in the chroma prediction.
In some embodiments, when using the band conversion table to generate the values of the chroma predictor block, instead of using the chroma table values stored in the table for a given luma sample value, a chroma sample is generated based on a weighted combination of at least two neighbour table element values. The weights are determined based on the luma sample value used to generate the chroma predictor block sample in relation to the luma values representing the centre of the bands.
In a first embodiment corresponding to this principle, illustrated by Figure 17, the chroma table value associated with a given band is considered associated with the centre of the band. The centre of the band is defined, in this embodiment, by the midpoint of the band. The centre is therefore defined by the median value of all the luma values mapped to the band.
For a given luma value L'[i,j] used to determine a chroma predictor block sample PredC[i,j], the relative position of the luma value compared to the closest centres of band is considered. Considering Figure 17, the luma value L'[i,j] is mapped to the band associated with the chroma table value 525 but falls between the centre of this band and the centre of the neighboring band having the chroma table value 487. The actual chroma predictor block sample value that is generated is the weighted average of these two chroma table values. The weights being the distance between the luma sample L'[i,j] and the centre of the two bands.
In an exemplary embodiment, the chroma predictor block sample is computed according to the following formula:
PredC[i,j] ((((il « Shift) + o) — L'[i,j]). Ταό[ί2]) + ((//[i,j] — ((i2 « Shift) + ο)). Ta&[il]) (1 « Shift) where i1 is the index of the current band, so il = L'[i,j] » Shift. i2 is the index of the neighboring band. The offset o corresponds to the half band, o = « (Shift — 1).
« Shift corresponds to the distance between two band centres, and also to the width of a band.
(il « Shift) + o corresponds to the centre of the current band and (i2 « Shift) + o to the centre of the neighboring band.
(((il « S/ii/t) + o) - L'[i,j]) corresponds to the distance between the current luma sample value L'[i,j] and the centre of the current band, while similarly, (L'[i,j] - ((i2 « Shift) + o)) corresponds to the distance between the current luma sample value L’[i,j] and the centre of the neighbouring band.
(((il « Shift) + o) - L'[i,j]) + (l'[i,j] - ((i2 « Shift) + o)) corresponds to 1 « Shift the distance between two band centers.
This embodiment increases the coding efficiency due to a more precise chroma prediction.
Yet other embodiments are based on a different definition of the centre of the bands composing the band conversion table. In these embodiments, the centre of a band is defined as the average luma sample values used to determine the chroma table value of the band. We have seen that the chroma table value of a non-empty band is defined as the average value of the chroma sample values of the pairs of samples mapped to the band. This has been described in relation to step 1008 of Figure 10. For example, a table Centre[i] may be used to store the centres of the bands. This table may be used to accumulate the luma sample values similarly to the accumulation of the chroma sample values in the band conversion table. Similarly, the Centre[i] table element, for the non-empty bands, may be divided by the Counter[i] to obtain a Centre[i] value corresponding to the average of the luma sample values. The centre of the empty bands is determined as the midpoint of the band as in previous embodiments. Figure 18 illustrates a band conversion table with the centre of the bands defined as the average of the luma sample values.
This definition of the centre of the bands may be used to increase the prediction of the chroma predictor block in different ways.
In an embodiment, this new definition of the centre of the bands is used to improve the embodiment described in relation with Figure 11D. In this embodiment, the chroma table values of empty bands are defined as a weighted average of the closest non-empty bands chroma table values. Introducing the new definition of the centre of the non-empty bands into the weighted average computation, the precision of the chroma table value determination is increased. For example, the computation may be done according to the formula:
T h[’J (Tab[k].(Centre[i] — Centrein]') + (Centre[k] — Centre[i]').Tab[n]') Centre[k] — Centre[n] where /, k and n have the same definition as in the embodiment of Figure 11D
Similarly, the embodiments described in relation with Figure 12 to 16 may take advantage of the new definition of the centres of the bands to improve the precision of the prediction and therefore the coding efficiency.
In an embodiment, the new definition of the centres of the bands is used to improve the precision of the embodiment of Figure 17, and therefore its coding efficiency. The derivation of the chroma predictor block may become:
PredC[i,j] ((Centre [12] — L'[i,j]).Tah[il]) + ((£' [i,j] — Centrelilty.Tab^]) Centre[i2] — Centre [il]
Where il is the index of the band of L'[i,j] and 12 the index of the left band of il. So 12 = il + 1. Of course, this formula can be adapted for the last band. And of course this formula can be changed by taking into account the right band instead of the left band.
All the previous embodiments are based on the general method illustrated by Figure 10. All these embodiments aim at reducing the complexity of the LM modes known in the prior art. Figure 19 illustrates another embodiment based on a modification in the general method of Figure 10. This new embodiment aims at further reducing the complexity of the method.
In this new embodiment, the averaging of the chroma samples values used to determine the chroma table value associated with the non-empty bands is replaced with the first chroma sample value encountered when parsing the pairs of samples.
Figure 19 corresponds to Figure 10. All similar steps have received the same references and are not described in detail. It differs in that step 1008 have been removed and replaced with step 1908 between step 1006 and step 1007. Consequently, the averaging of the accumulated luma samples is suppressed. In step 1908, it is tested if the counter is null which means that the current pair of samples is the first one encountered in the parsing. The accumulation step 1007 is therefore limited to this first pair of samples. The band conversion table element is set with the chroma sample value of the first pair of samples encountered in the parsing.
By suppressing the average operation and limiting the accumulation steps, this embodiment decrease the complexity of the method with a small impact on the precision of the chroma prediction. This embodiment may be combined with all the previous embodiments.
In an alternative embodiment, the single pair of samples used to determine the chroma table value of the band is not the first encountered in the parsing but the one with the luma sample value that is the closest to the midpoint of the band. According to this embodiment, step 1908 may become:
Centreband = ((index « Shift) + 1 « (Shift — 1))
where Abs(x) is the absolute value of x and Centreband is the luma value corresponding to the midpoint of the band. This embodiment also reduces the complexity of the method with a smaller impact on the coding efficiency. Moreover, the computation regarding each band may be parallelized.
In yet another embodiment, the empty bands stay empty. For example, their chroma predictor value stay equal to zero. The coding efficiency is only slightly degraded as the luma sample values of the luma block used to determine the chroma predictor block are generally very close to the luma sample values of the pair of samples used to determine the band conversion table. Therefore, the empty bands are typically not often used in the prediction.
In all the previously described embodiments, the number of bands, meaning the size of the band conversion table was a parameter of the method. In yet another embodiment, different band LM modes using different size of the band conversion table may be used in competition to determine for a given block the best size of the table. For example, considering a bitdepth of ten bits, a band LM mode with 32 bands may compete with a band LM mode with 128 bands.
Most of the described embodiments may be combined. While the description focus on the prediction of a chroma block from a luma block, the described methods may be used for the prediction of any component block from another component block.
Figure 20 is a schematic block diagram of a computing device 2000 for implementation of one or more embodiments of the invention. The computing device 2000 may be a device such as a micro-computer, a workstation or a light portable device. The computing device 2000 comprises a communication bus connected to:
- a central processing unit 2001, such as a microprocessor, denoted
CPU;
- a random access memory 2002, denoted RAM, for storing the executable code of the method of embodiments of the invention as well as the registers adapted to record variables and parameters necessary for implementing the method for encoding or decoding at least part of an image according to embodiments of the invention, the memory capacity thereof can be expanded by an optional RAM connected to an expansion port for example;
- a read only memory 2003, denoted ROM, for storing computer programs for implementing embodiments of the invention;
- a network interface 2004 is typically connected to a communication network over which digital data to be processed are transmitted or received. The network interface 2004 can be a single network interface, or composed of a set of different network interfaces (for instance wired and wireless interfaces, or different kinds of wired or wireless interfaces). Data packets are written to the network interface for transmission or are read from the network interface for reception under the control of the software application running in the CPU 2001;
- a user interface 2005 may be used for receiving inputs from a user or to display information to a user;
- a hard disk 2006 denoted HD may be provided as a mass storage device;
- an I/O module 2007 may be used for receiving/sending data from/to external devices such as a video source or display.
The executable code may be stored either in read only memory 2003, on the hard disk 2006 or on a removable digital medium such as for example a disk. According to a variant, the executable code of the programs can be received by means of a communication network, via the network interface 2004, in order to be stored in one of the storage means of the communication device 2000, such as the hard disk 2006, before being executed.
The central processing unit 2001 is adapted to control and direct the execution of the instructions or portions of software code of the program or programs according to embodiments of the invention, which instructions are stored in one of the aforementioned storage means. After powering on, the CPU 2001 is capable of executing instructions from main RAM memory 2002 relating to a software application after those instructions have been loaded from the program ROM 2003 or the hard-disc (HD) 2006 for example. Such a software application, when executed by the CPU 2001, causes the steps of the method according to the invention to be performed.
Any step of the methods according to the invention may be implemented in software by execution of a set of instructions or program by a programmable computing machine, such as a PC (“Personal Computer”), a DSP (“Digital Signal Processor”) or a microcontroller; or else implemented in hardware by a machine or a dedicated component, such as an FPGA (“Field-Programmable Gate Array”) or an ASIC (“Application-Specific Integrated Circuit”).
It is also to be noted that while some examples are based on HEVC for the sake of illustration, the invention is not limited to HEVC. For example, the present invention can also be used in any other prediction/estimation process where a relationship between two or more components’ sample values can be estimated/predicted with a linear model, wherein the linear model is an approximate model determined based on at least two sets of related/associated component sample values selected from all available sets of the related/associated component sample values.
It is understood that each point corresponding to a sample pair (i.e. a set of associated sample values for different components) may be stored and/or processed in terms of an array. For example, each component’s sample values may be stored in an array so that each sample value of that component is referable/accessible/obtainable by referencing an element of that array, using an index for that sample value for example. Alternatively, an array may be used to store and process each sample pair so that each sample value of the sample pair is accessible/obtainable as an element of the array.
It is also understood that any result of a comparison, determination, assessment, selection, or consideration described above, for example a selection made during an encoding process, may be indicated in or determinable from data in a bitstream (or information obtainable from the bitstream), for example a flag or data indicative of the result, so that the indicated or determined result can be used in the processing without actually performing the comparison, determination, assessment, selection, or consideration, for example during a decoding process.
Although the present invention has been described hereinabove with reference to specific embodiments, the present invention is not limited to the specific embodiments, and modifications will be apparent to a skilled person in the art which lie within the scope of the present invention.
Many further modifications and variations will suggest themselves to those versed in the art upon making reference to the foregoing illustrative embodiments, which are given by way of example only and which are not intended to limit the scope of the invention, that being determined solely by the appended claims. In particular the different features from different embodiments may be interchanged, where appropriate.
Each of the embodiments of the invention described above can be implemented solely or as a combination of a plurality of the embodiments. Also, features from different embodiments can be combined where necessary or where the combination of elements or features from individual embodiments in a single embodiment is beneficial.
Each feature disclosed in this specification (including any accompanying claims, abstract and drawings) may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise. Thus, unless expressly stated otherwise, each feature disclosed is one example only of a generic series of equivalent or similar features.
In the claims, the word “comprising” does not exclude other elements or steps, and the indefinite article “a” or “an” does not exclude a plurality. The mere fact that different features are recited in mutually different dependent claims does not indicate that a combination of these features cannot be advantageously used.

Claims (25)

1. A method of obtaining a first-component sample value for a firstcomponent block from an associated reconstructed secondcomponent sample value of a second-component block, the method comprising:
- defining a band conversion table by dividing the range of secondcomponent sample values into a set of bands, the band conversion table associating a band with a first-component table value,
- deriving the first-component table values associated with the bands based on a reconstructed first-component sample set comprising first-component samples neighbouring the firstcomponent block and a reconstructed second-component sample set, the reconstructed second-component sample set comprising reconstructed second-component samples neighbouring the second-component block, and
- obtaining the first-component sample value as the first component table value associated with the corresponding reconstructed second-component sample value in the second-component block comprising the reconstructed second-component sample values.
2. The method of claim 1, wherein deriving the first-component table values comprises:
- deriving the first-component table values associated with a first set of non-empty bands, the first set of non-empty bands corresponding to bands containing at least one reconstructed second-component sample value, and
- deriving the first-component table values associated with a second set of empty bands corresponding to bands not containing any reconstructed second-component sample value.
3. The method of claim 2, wherein a first-component table value associated with a non-empty band corresponds to the average of the reconstructed first-component sample values corresponding to reconstructed second-component sample values included in the nonempty band.
4. The method of claim 2, wherein a first-component table value associated with a non-empty band corresponds to the reconstructed first-component sample values corresponding to the first processed reconstructed second-component sample values included in the nonempty band.
5. The method of claim 2, wherein a first-component table value associated with a non-empty band corresponds to the reconstructed first-component sample values corresponding to the reconstructed second-component sample values included in the non-empty band that is the closest to the centre of the band.
6. The method of any one claim 2 to 4, wherein a first-component table value for the empty bands is set to the average value of the firstcomponent table values of the non-empty bands.
7. The method of any one claim 2 to 4, wherein a first-component table value for the empty bands is set to the value of the first-component table value of the closest non-empty band in term of the range of the second-component sample values.
8. The method of any one claim 2 to 4, wherein a first-component table value for the empty bands is set to a weighted average value of the first-component table values of the closest non-empty bands.
9. The method of any one claim 2 to 4, wherein a first-component table value for the empty bands is set to the midpoint of the full range of the first-component sample values.
10. The method of any one claim 2 to 4, wherein the first-component table values for the empty bands are set based on at least one linear model defining a straight line in a two dimensional space, the first dimension being the first-component sample values, the second dimension being the second-component sample values, the straight line passing through two points among the set of points defined by the reconstructed first-component and second-component sample values.
11. The method of claim 10, wherein the straight line passes through two points corresponding to the minimum second-component sample value and to the maximum second-component sample value.
12. The method of claim 10, wherein the first-component table values for the empty bands is set based on a plurality of linear models representing segments of straight lines in the two dimensions graph.
13. The method of claim 12, wherein the segments passes through two points corresponding to the minimum second-component sample value and to the maximum second-component sample value and through two points corresponding to the minimum first-component sample value and to the maximum first-component sample value.
14. The method of any one claim 10 to 13, wherein the first-component table values for all the bands are set based on the at least one linear model.
15. The method of any one claim 1 to 14, wherein obtained firstcomponent sample is the weighted average of the first-component table values associated with two neighbouring bands, the weight being based on a difference between the associated reconstructed secondcomponent samples and the centre of the bands.
16. The method of claim 15, wherein the centre of the bands is defined as the midpoint of the bands in term of the range of the secondcomponent sample values.
17. The method of claim 15, wherein the centre of a band is defined as the average of the reconstructed second-component sample values in the band.
18. A method of encoding one or more images into a bitstream, wherein the method comprises obtaining a first-component sample value according to any one of claims 1 to 17.
19. A method of decoding one or more images from a bitstream, wherein the method comprises obtaining a first-component sample value according to any one of claims 1 to 17.
20. A device for obtaining a first-component sample value for a firstcomponent block from an associated reconstructed secondcomponent sample value of a second-component block, the device configured to perform the method comprising:
- defining a band conversion table by dividing the range of secondcomponent sample values into a set of bands, the band conversion table associating a band with a first-component table value,
- deriving the first-component table values associated with the bands based on a reconstructed first-component sample set comprising first-component samples neighbouring the firstcomponent block and a reconstructed second-component sample set, the reconstructed second-component sample set comprising reconstructed second-component samples neighbouring the second-component block, and
- obtaining the first-component sample value as the first component table value associated with the corresponding reconstructed second-component sample value in the second-component block comprising the reconstructed second-component sample values.
21. A device for encoding images, wherein the device comprises a means for obtaining a first-component sample value according to any one claim 1 to 17.
22. A device for decoding images, wherein the device comprises a means for obtaining a first-component sample value according to any one claim 1 to 17.
23. A computer program product for a programmable apparatus, the computer program product comprising a sequence of instructions for implementing a method according to any one of claims 1 to 19, when loaded into and executed by the programmable apparatus.
24. A computer-readable medium storing a program which, when executed by a microprocessor or computer system in a device, causes the device to perform a method according to any one of claims 1 to 19.
25.A computer program which upon execution causes the method of any one of claims 1 to 19 to be performed.
GB1802969.4A 2018-02-23 2018-02-23 New sample sets and new down-sampling schemes for linear component sample prediction Active GB2571312B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
GB1802969.4A GB2571312B (en) 2018-02-23 2018-02-23 New sample sets and new down-sampling schemes for linear component sample prediction
TW108103477A TW201937928A (en) 2018-02-23 2019-01-30 New sample sets and new down-sampling schemes for linear component sample prediction
PCT/EP2019/053244 WO2019162116A1 (en) 2018-02-23 2019-02-11 New sample sets and new down-sampling schemes for linear component sample prediction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1802969.4A GB2571312B (en) 2018-02-23 2018-02-23 New sample sets and new down-sampling schemes for linear component sample prediction

Publications (3)

Publication Number Publication Date
GB201802969D0 GB201802969D0 (en) 2018-04-11
GB2571312A true GB2571312A (en) 2019-08-28
GB2571312B GB2571312B (en) 2020-05-27

Family

ID=61903285

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1802969.4A Active GB2571312B (en) 2018-02-23 2018-02-23 New sample sets and new down-sampling schemes for linear component sample prediction

Country Status (3)

Country Link
GB (1) GB2571312B (en)
TW (1) TW201937928A (en)
WO (1) WO2019162116A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2580192A (en) * 2018-12-20 2020-07-15 Canon Kk Piecewise modeling for linear component sample prediction
US20220329816A1 (en) * 2019-12-31 2022-10-13 Beijing Bytedance Network Technology Co., Ltd. Cross-component prediction with multiple-parameter model
US11943451B2 (en) 2019-01-03 2024-03-26 Huawei Technologies Co., Ltd. Chroma block prediction method and apparatus

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102618079B1 (en) 2018-10-07 2023-12-27 삼성전자주식회사 Video signal processing method and device using MPM configuration method for multiple reference lines
KR20230162148A (en) 2018-10-12 2023-11-28 삼성전자주식회사 Method and device for processing video signal by using cross-component linear model
WO2024022390A1 (en) * 2022-07-27 2024-02-01 Mediatek Inc. Method and apparatus of improving performance of convolutional cross-component model in video coding system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016066028A1 (en) * 2014-10-28 2016-05-06 Mediatek Singapore Pte. Ltd. Method of guided cross-component prediction for video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016066028A1 (en) * 2014-10-28 2016-05-06 Mediatek Singapore Pte. Ltd. Method of guided cross-component prediction for video coding

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2580192A (en) * 2018-12-20 2020-07-15 Canon Kk Piecewise modeling for linear component sample prediction
US11943451B2 (en) 2019-01-03 2024-03-26 Huawei Technologies Co., Ltd. Chroma block prediction method and apparatus
US20220329816A1 (en) * 2019-12-31 2022-10-13 Beijing Bytedance Network Technology Co., Ltd. Cross-component prediction with multiple-parameter model
US11968368B2 (en) * 2019-12-31 2024-04-23 Beijing Bytedance Network Technology Co., Ltd Cross-component prediction with multiple-parameter model

Also Published As

Publication number Publication date
TW201937928A (en) 2019-09-16
GB2571312B (en) 2020-05-27
WO2019162116A1 (en) 2019-08-29
GB201802969D0 (en) 2018-04-11

Similar Documents

Publication Publication Date Title
US11695933B2 (en) Sample sets and new down-sampling schemes for linear component sample prediction
US10939117B2 (en) Sample sets and new down-sampling schemes for linear component sample prediction
GB2571312A (en) New sample sets and new down-sampling schemes for linear component sample prediction
WO2019162118A1 (en) Methods and devices for linear component sample prediction using a double classification
WO2019162117A1 (en) Methods and devices for improvement in obtaining linear component sample prediction parameters
WO2020127956A1 (en) Piecewise modeling for linear component sample prediction